我有一个程序从文件中读取,对输入进行一些工作,然后将其输出到套接字。它已经运行了一个多月,突然我开始收到错误 11(EAGAIN?)错误,该错误会杀死程序。当我启动该程序的 32 个实例时,在收到 EAGAIN 消息的几分钟内就有一半以上死亡。我从来没有将文件设置为非阻塞,除此之外,输入文件如何阻塞,数据总是在那里,不是吗?我对这段代码所做的唯一更改是禁用 sigpipe 信号以避免程序在套接字连接丢失时死亡。
请原谅我没有发布代码,但我无法复制和粘贴,而且代码无论如何都散布了。它实际上就像在一行上打开一个文件并稍后调用 readline(file, inputString) 一样简单。
谢谢。