私はソケット プログラミングについて学んでおり、C プログラミングもよく知っています。
たとえば、私の C プログラミングの知識に基づいて、else ステートメント内の何かが処理されると、対応する if ステートメント内のコードは実行されるべきではありません。例えば、
int a = 1;
if(a == 1) process1 ;
else process2;
上記のステートメントに基づいて、a は 1 に等しいため、実行するprocess1
必要がありますが、実行process2
されません。これは正しいと思います。
私の質問は、次のコードで示されています。
int main(void){
pid_t pid;
int pp[2];
pipe(pp);
pid = fork();
if(pid == 0){
printf("Processed pid == 0\n");
}else{
printf("Processed pid != 0\n");
}
return 0;
}
このプログラムを実行すると、次の出力が得られます。
Processed pid == 0
Processed pid != 0
私の質問は、なぜif
andelse
ステートメントの両方の結果が表示されるのですか?