Application quitte sans avoir fermé un fichier ouvert en écriture - Divers - Programmation
Marsh Posté le 28-03-2007 à 14:39:45
Merci pour cette réponse précise
Une autre question vient alors : admettons que je ne puisse pas accéder à la liste des processus lancés sur le système d'exploitation; du bricolage s'impose à moi; je souhaite savoir, depuis une appli A, à quel moment une appli B est terminée.
L'appli B, en démarrant, ouvrirait un fichier en écriture et ne le fermerait "jamais". Mon appli B, lancé en second, tanterait aussi d'ouvrir ce même fichier en ecriture. Mon appli B ne passerait à l'étape suivante qu'une fois l'ouverture réussi.
Pensez-vous que ça puisse être une solution, ou est-ce complètement "pourri" ?
Quelles autres solutions ai-je pour détecter l'arrêt de l'appli A (sans signal ni listing de process) ?
Et MERCI encore !!!
Marsh Posté le 28-03-2007 à 14:49:30
tu travaille sous quel os/langage pour ne pas avoir de fonctions de processus ?
généralement un soft qui veut informer les autres qu'il tourne crée un fichier qui contient son pid ( pour faciliter la recherche ) et il l'efface en se fermant
Attention , cas de plantage du soft, le fichier reste , mais le pid ne correspond plus a rien
sinon, ta méthode pourrai marcher en théorie, mais bon
tu ne peux pas faire lancer B par A ?
Marsh Posté le 28-03-2007 à 15:39:00
oui en non en fait.
Avec .NET, j'ai déjà eu le cas où le GC merdait, et laissait un lock en écriture sur le fichier même après la mort du thread principal : le thread fils (qui effectuait les oppérations d'écriture dans le fichier) restait en vie comme un con.
Marsh Posté le 29-03-2007 à 09:43:14
Je travaille sous les OS Windows et Mac
Le logiciel A est du 4D (4em Dimension); pour ceux qui connaissent, c'est un language de haut niveau qui par défaut n'accède pas aux processus de la machine sans l'ajout d'un plugin (et je n'ai "pas le droit" de créer de plugin pour mon projet).
Le logiciel B sera en C ou C++ (autant que possible C-Ansi).
Le truc, surtout, c'est que ces 2 applis risquent de ne pas travailler sur le même poste (et à ma connaissance, une appli ne peut connaitre les process en cours sur une autre machine), et donc je cherche un moyen par les dossiers partagés par exemple ....
(une dernière chose : "y'm'soûle déjà ce projet" )
Marsh Posté le 28-03-2007 à 14:07:28
Bonjour,
Soit une application qui ouvre un fichier en écriture(+ éventuellement en lecture).
Si l'application quitte sans avoir fermé le fichier, le système d'exploitation (ex Windows, Mac OS, Unix ou Linux) libère-t'il le fichier et ce dernier pourra-t'il alors être ouvert par une autre application ?
Merci