我有一个代码创建两个管道,用于写入和读取调用另一个程序的2(至4)个子进程的数据。这个程序的代码只是两个printf
,一个打印-
和另一个打印Done
都连接到stdout
连接到父进程的读取管道。 在父过程中,我阅读使用从子进程逐个读取数据
read(pipes[i][1][0], buffer, sizeof(buffer)-1);
数据的问题是,如果我设置的buffer
大小为4(比如说)read()
调用读取-Do
这不是我想要的,因为我会之后再次致电read()
。 如果大小为2,则一切正常,因为我知道要读取的内容的大小,但在其他代码中,我没有这些信息。
我试过fflush(stdout)
关于子进程每个printf()
但它不起作用。我认为这很容易解决,但我无法弄清楚,有没有办法逐一阅读由子进程生成的相片?
通过使用换行符,你的意思是我必须通过字符来读取char,并在发现''\ n''时停止? – 2014-09-23 11:27:59
那么,你可以使用'fgets'或类似的东西。 – Useless 2014-09-23 12:03:54
好的,我会使用该解决方案。谢谢。 – 2014-09-23 12:25:13