POSIX部分写入()和信号中断

问题描述 投票:0回答:1

write()的手册页开始

注意,成功的write()传输的字节数可能少于计数字节。发生这种部分写入的原因可能多种多样。例如,因为磁盘设备上的空间不足,无法全部写入所请求的字节数,或者由于blocked write()to socket,管道,或类似的东西被信号处理程序打断]]转移了一些,但是在转移了所有请求之前个字节。在部分写入的情况下,调用者可以进行另一次写入write()调用以传输剩余的字节。后续通话可能会传输更多字节或可能导致错误(例如,如果磁盘现在已满)。

我有以下问题

1]如果在部分传输后write()被信号处理程序中断,将write()设置为errnoEINTR吗?

2)如果未设置errno,是否有办法无需额外的代码就能识别此类事件(如安装信号处理并将标志值设置为true)?

注意:

发生信号中断后,write()成功传输了剩余的字节。

摘自write()的手册页,注意,成功的write()传输的字节数可能少于计数字节。发生这种部分写入的原因可能多种多样。例如,因为有...

c linux network-programming posix
1个回答
0
投票

回答您的个人编号问题:

© www.soinside.com 2019 - 2024. All rights reserved.