私はosプログラムを実装しようとしました。コードは次のとおりです。
#include<sys/types.h>
#include<stdio.h>
#include<unistd.h>
int main()
{
pid_t pid, pid1;
pid = fork();
if(pid<0)
{
fprintf(stderr,"Fork Failed");
return 1;
}
else if(pid == 0) /* child process */
{
pid1 = getpid();
printf("child: pid = %d\n",pid);
printf("child: pid1 = %d\n",pid1);
}
else /* parent process */
{
pid1 = getpid();
printf("parent: pid = %d\n",pid);
printf("parent: pid1 = %d\n",pid1);
}
return 0;
}
およびその o/p:
parent: pid = 1836
parent: pid1 = 1835
child: pid = 0
child: pid1 = 1836
誰かがそれがどのように機能しているのか、つまり、コードに書かれた // ステートメントの実行シーケンスを説明できif
ますかelse-if
。条件が真になると部分は実行されないelse
と思いますが、ここでは親プロセス部分、つまり部分を実行し、次に子部分を実行しました.....どうしてですか?else if
else
else