Question sur fork()

Résolu/Fermé
Maxmax74 Messages postés 325 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 9 février 2017 - 11 avril 2011 à 09:03
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 11 avril 2011 à 10:01
Bonjour,

j'ai quelques questions sur l'instruction fork() en C :

1) si on écrit juste "fork();" est-ce qu'un processus fils est créé ou il faut écrire "pid=fork();"


2) en cas d'erreur de création du processus fils dans le code :

pid=f o r k ( ) ;
i f ( pid < 0 ){
p r i n t f ( "Probleme c r e a t i o n pr o c e s sus nn" ) ;
e x i t ( 1 ) ;
}
...

qui exécute le printf(...) ?

merci d'avance pour vos réponses

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
11 avril 2011 à 09:55
Bonjour
Pid() tout court appelle la fonction. Par contre tu sauras pas si la fonction a bien marche ni distinguer le pere du fils. Il faut donc bien recuperer la valeur de retour.
Si le pid est negatif ( -1 ) c'est qu'il y a eu une erreur ( cf. errno).
Pour plus de precision tu peux te reporter au man.
Cdlt
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
11 avril 2011 à 10:01
Pour la valeur negative, c'est le pere qui affiche le printf puisque le fils n'a pas pu etre creee.
0