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