我在linux下用mount.cifs
挂载Windows SMB共享并从C++程序写入文件时遇到了一个问题。 这可以正常工作,但一旦出现网络问题(即Windows服务器断开连接),使用POSIXopen()
打开文件将无限期挂起。 如果文件打开时共享断开连接,则POSIXclos()
调用也会发生同样的情况。 使用std::ofstream
会发现类似的问题。
有吗
Open()
/Close()
的另一个版本?
当信号到达时,系统调用中断; errno
将返回EINTR。
您可以在syscall之前使用alarm()
来排定超时周期之后的SIGALRM。
如果系统调用在超时期限到期之前成功返回,您还可以使用alarm()
取消挂起的SIGARLM。