私はlinux \ unix osを使用しています。私がコードの下で走ったとき、私は2つの出力を得ています。下記:同じコードに対して2つの出力を得る
A)12345- b)の1-2-3-4-5-
誰がなぜ、どのように上記の2つの出力が来ている私が知っていることはできますか?
int main()
{
int i, n, pfds[2];
char c, buf[80];
pipe(pfds);
if (fork() == 0)
{
for (c='1'; c<='5'; c++)
write(pfds[1], &c, 1);
}
else
{
close(pfds[1]);
while ((n = read(pfds[0], buf, sizeof(buf))) > 0)
{
write(1, buf, n);
write(1, "-", 1);
}
}
return 0;
}
fflushは、使用しないstdioバッファ(fwriteなど)にのみ影響します。 – 12431234123412341234123