呼叫Cap'n Proto时,出现writeMessageToFd(pipe, message);
以下错误:
terminate called after throwing an instance of 'kj::ExceptionImpl'
what(): src/kj/io.c++:323: failed: ::writev(fd, current, iov.end() - current): Bad file descriptor; fd = -1
stack: 0x7efead69cf89 0x7efead6a0c7f 0x7efead6a2648 0x7efead6a24f7 0x7efead8f40b7 0x7efead8f42a4 0x402c7b 0x402a36 0x4028df 0x7efeabd50e50 0x7efeabd5181a 0x7efeabd52669 0x7efeabd52a03 0x7efeabd52bb2 0x402865 0x4027ab
您并没有真正问过问题,但是我可以从该异常中告诉您,您不应该尝试使用无效的文件描述符来调用writeMessageToFd(异常文本告诉您此“不良文件描述符; fd = -1”) 。
您有两种选择:-如果pipe == -1,则不要调用该函数(可能最好,您应该检查返回管道的调用是否未返回-1)-用a括住对writeMessageToFd()的调用尝试/捕获并适当地处理异常
您应该真正使用前者,并在管道中适当地处理-1值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句