【发布时间】:2012-07-24 15:31:46
【问题描述】:
在 POSIX / Linux 中的多个分叉进程之间共享标准错误是否有任何缓冲区限制或特定准则?
perror("Some descriptor related error: ");
我有一个服务器应用程序,它在需要时调用 perror。作为一个单一的过程,它工作正常。如果使用fork创建了多个进程,服务器运行一段时间后(发生多次打印错误),它开始连续打印错误语句并进入无限循环。
我通过注释掉服务器正常运行的打印语句来验证。
所以在我看来,标准错误可能存在一些缓冲区溢出类型的场景,该场景会在一段时间后耗尽。
我没有对 perror 使用任何互斥锁或信号量。
服务器代码很大,它使用 epoll 处理多个客户端描述符,其中包含一个工作进程池,这些进程池会在客户端到来时获取它们。
【问题讨论】:
标签: c linux concurrency posix fork