【发布时间】:2011-10-17 23:53:51
【问题描述】:
在我的应用程序中,我正在创建一堆子进程。在 fork() 之后,我打开一个每个进程的文件,将创建的进程的 stdout/stderr 设置为指向该文件,然后执行预期的程序。
父进程是否可以设置这样一种方式,即当子进程执行 printf 时,它会立即刷新到输出文件而无需调用 flush() ?或者是否有可以从子进程本身调用的 API(在 exec 之前)以禁用缓冲 I/O?
【问题讨论】:
-
查看 setvbuf 的手册页,您可以将 stdout 设置为无缓冲。 stderr 已设置为无缓冲。