【问题标题】:What should i do if write(2) fail?如果 write(2) 失败,我该怎么办?
【发布时间】:2011-11-21 15:18:24
【问题描述】:

看着 man 2 写:

"On error, -1 is returned, and errno is set appropriately."

但是如果 write(2) 只是失败了,那么在...之后立即写入错误消息是无稽之谈。 也许我应该在 stderr 上写一条错误消息,或者在第一次写错误时退出()?

你怎么看?

【问题讨论】:

  • 这取决于您的应用程序的逻辑。写入错误是否可恢复?如果没有,您可能需要立即致电perror(),然后拨打abort()。请记住,对文件系统的所有写入都可能因ENOSPC 而失败,在这种情况下没有“安全”写入之类的东西。

标签: c error-handling


【解决方案1】:

在典型的命令行程序中,错误消息应该始终写入stderr,这就是它的用途。

【讨论】:

    【解决方案2】:

    write 可以在一个 fd 上失败,而不是在另一个 fd 上。因此,报告 stderr 为什么写入套接字失败是有意义的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2011-04-26
      • 1970-01-01
      • 2019-02-10
      • 2011-06-14
      • 2012-08-01
      • 1970-01-01
      相关资源
      最近更新 更多