Application quitte sans avoir fermé un fichier ouvert en écriture

Application quitte sans avoir fermé un fichier ouvert en écriture - Divers - Programmation

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

Reply

Marsh Posté le 28-03-2007 à 14:07:28   

Reply

Marsh Posté le 28-03-2007 à 14:08:48    

Reply

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 !!!


Message édité par mv1 le 28-03-2007 à 14:40:21
Reply

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 ?

Reply

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.

Reply

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" )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed