我正在使用linux \ unix操作系统。当我跑下面的代码时,我得到2个输出。下面提到:获取2个输出为相同的代码
一)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