プログラム1では1 Hello world
回だけ印刷されますが、削除 \n
して実行すると(プログラム2)、出力が8回印刷されます。誰かが私に\n
ここの重要性とそれがどのように影響するかを説明してもらえますかfork()
?
プログラム1
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("hello world...\n");
fork();
fork();
fork();
}
出力1:
hello world...
プログラム2
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("hello world...");
fork();
fork();
fork();
}
出力2:
hello world... hello world...hello world...hello world...hello world...hello world...hello world...hello world...
fork()
Unix特有の問題でもあるため、unix.SEにとっては非常に話題になっているようです。
./prog1 > prog1.out
)またはパイプ(./prog1 | cat
)への出力でプログラム1を実行してみてください。心を吹き飛ばす準備をしてください。:-)