Question sur fork()

Résolu
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

  1. Contributeur
    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. Contributeur
      Pour la valeur negative, c'est le pere qui affiche le printf puisque le fils n'a pas pu etre creee.