での作業を学んでfork()
いますが、いくつか質問があります。
次のコードを検討してください。
#include <stdio.h>
#include <unistd.h>
int main()
{
int i;
for(i = 0; i < 5; i++)
{
printf("%d", i);
if((i%2)==0)
if(fork())
fork();
}
}
端末に出力すると、期待する結果が得られます(つまり:) 0,1,1,1,2,2,2,...
。しかし、ファイルに出力すると、結果は完全に異なります。
ケース1:(端末への出力、例:)
./a.out
:結果は次のとおりです。
0,1,1,1,2,2,2,...
ケース2:(ファイルへの出力、例
./a.out > output_file
:)結果は次のとおりです。
0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,...
なんでこんな感じ?