繁体   English   中英

STDOUT上的setvbuf对其他进程是否安全?

[英]setvbuf on STDOUT safe for other processes?

我正在使用HP-UX。 我想在stdout上禁用缓冲,以确保在使用以下命令进行核心转储的情况下打印每行代码:

setvbuf(stdout, NULL, _IONBF, 0); // turn off buffering for stdout

在这种情况下,它是否也影响打印到stdout的其他进程被重定向到某个日志文件? 我想知道这个更改是否仅对于正在执行的进程是本地的。 此外,我可以在进程中禁用缓冲,然后再在代码中再次设置_IO_FBF吗? (每次通话前fflush)

PS:我知道这会禁用缓冲并且I / O性能更差,但我想这只是为了调试目的。

setvbuf调用仅影响当前进程中的stdio例程,并且所有子进程都已分叉但未执行。

在C标准中未指定在同一个流上多次调用setvbuf时stdio如何响应,因此不要在希望在C实现中移植的代码中发出多个调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM