Utilisation du wait [C/Unix] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 05-05-2013 à 17:42:55
ReplyMarsh Posté le 05-05-2013 à 17:45:48
Comment ça ?
Code :
|
Marsh Posté le 05-05-2013 à 17:55:28
Selon le code de ton if tu ne pourait pas avoir à la fois la ligne d'info find et le message "mort du fils" donc il doit y avoir une confusion entre le code de retour de ton processus copier et le processus appellé. j'y connais rien en fork, d'ailleur pourquoi en faire un ?
Marsh Posté le 12-06-2013 à 22:32:27
En regardant vite fait je dirais que ton execlp se termine normalement donc ret= exit(0) et ton exit(2); est pas exécuté.
Ajoute un printf entre les 2 pour voir.
Il faudrait regarder la doc de execlp().
edit: je me demande si c'est pas ton ret = wait(&n); qui fout le bronx
Marsh Posté le 12-06-2013 à 22:36:05
Ouais j'ai fini par le voir, mais merci beaucoup pour la réponse
Marsh Posté le 12-06-2013 à 23:05:47
C'était quoi du coup ?
Marsh Posté le 13-06-2013 à 00:46:01
grao a écrit : C'était quoi du coup ? |
Recouvrement du processus par le exec qui exit avec un code 0
Marsh Posté le 02-05-2013 à 16:37:55
Bonjour, j'ai un petit soucis lors de l'éxécution du programme suivant :
Un processus lance en tâche de fond une recherche avec affichage des fichiers « *.txt » présents à partir du répertoire courant. Aussitôt et en parallèle, il travaille 5 secondes (simulé à l’aide de sleep). À l’issue de ce travail, il attend (éventuellement) la fin de la tâche qu’il a lancée (on ne connait pas le temps de l’exécution de cette tâche).
Enfin, il vérifie la « qualité » de l’exécution de la tâche en analysant puis en affichant le compte-rendu complet de son exécution. Un message final achève son travail.
Voici le code associé:
Seulement, lors de l'execution, voici ce qui est affiché :
Le code de retour de l'exit est 0, alors qu'il devrait être 2.
Comment expliquer cela ?
Message édité par Astroya le 05-05-2013 à 17:46:28