Bonjour.
Je souhaiterai connaitre une méthode permettant de supprimer l'exécutable d'un processus.
Toute aide est la bienvenue.
Bonjour.
Je souhaiterai connaitre une méthode permettant de supprimer l'exécutable d'un processus.
Toute aide est la bienvenue.
Hello,
Que veux-tu dire ? Tuer le processus ou supprimer le fichier exécutable ?Envoyé par 0v3rb1t
Pour supprimer un fichier, tu as la fonction remove() en C. Pour tuer un processus, c'est propre au systeme.
A+
je ne sais pas à quoi ça pourra te servir, mais c'est simple :
Si tu es sous *n*x...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <stdlib.h> int main ( int argc, char **argv ) { char *chaine=NULL ; int i ; chaine = malloc ( (strlen(argv[0])+7) ); if ( chaine == NULL ) { fprintf ( stderr, "\n Erreur d'allocation\n"); return EXIT_FAILURE ; } sprintf ( chaine, "rm -f %s", argv[0] ); i = system(chaine); free(chaine); return i ; }
Si tu es sous Windows, je ne connais pas la commande équivalente à rm.. Delete ? DeleteFile ??
PAr contre, sous *n*x, tu détruiras bien le binaire, mais pas le processus...
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Les systèmes unixoïdes autorisent à supprimer un exécutable/script "en cours d'exécution" ?
Ça ne marchera pas sosu Windows, en tout cas: Un programme en cours d'exécution est considéré comme un fichier "utilisé par un processus"...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Oui, tout comme on peut supprimer n'importe quel fichier. Le truc pour faire un fichier utilisable uniquement par un processus sous unix, c'est de l'ouvrir puis de le supprimer. Le fichier reste présent tant qu'il y a une référence mais on ne peut pas créer de nouvelles références.Envoyé par Médinoc
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
T'as raison, peut-être pas si le binaire est gros. Si il est "petit", oui car le binaire une fois lancé est chargé en mémoire par le loader.... Donc le fichier physique n'est plus relié... Mais peut-être que c'est lié au fait de ne pas faire référence à des blibliothèques. Je n'ai jamais essayé avec un tout petit prog, ou un prog sans biblios... Donc je me suis peut-être avancé un peuEnvoyé par Médinoc
Par contre, un très net avantage de la manière de gérer unixoide :
Une manière subtile de faire un upgrade sans déranger l'usager :
quand tu compiles une nouvelle version, tu fais un "move" (mv en shell) du binaire vers un autre nom, et tu compiles normalement. L'usager continue comme si de rien n'était, mais si il quitte et relance il obtient la nouvelle version
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Il me semble qu'on peut renommer un programme en cours d'exécution sous Windows. Mais pas le supprimer, en tout cas : On ne peut supprimer un fichier ouvert que s'il l'est avec le flag FILE_SHARE_DELETE, et un programme en éxécution ne l'est pas.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager