可以dup2真的返回EINTR?【JAVA教程】

!
也想出现在这里? 联系我们
信息

可以dup2真的返回EINTR?,第1张

概述可以dup2真的返回EINTR?

在规范和两个实现中:

根据POSIX, dup2()可能会返回EINTR。

linux的手册页列出了允许的。

FreeBSD手册页表明它从未返回。 这是一个错误 – 因为它的紧密实现可以EINTR(至less为TCP徘徊,如果没有别的)。

事实上,linux可以返回EINTR为dup2() ? 大概如果是这样,这将是因为close()决定等待,并且一个信号到达(TCPclosures或试图在closures时同步的文件系统驱动程序)。

实际上,FreeBSD是否保证不返回EINTR for dup2() ? 在这种情况下,它一定是不用等待旧fd上的任何未完成的 *** 作,而只是将fd解除链接。

POSIX dup2()在引用“closing”(而不是斜体)而不是引用实际的close()函数时意味着什么?我们理解它只是以非正式的方式来“closures”它(取消链接文件描述符),还是试图说效果应该像close()函数首先被调用,然后dup2()被自动调用。

进程在linux中终止时文件描述符是否closures?

中止linux轮询

在linux平台上使用套接字时是否有文件描述符泄漏?

如何从PHP调用dup2()系统调用?

打开并写入C中的多个文件

如果fildes2已经是一个有效的开放文件描述符,则它应该先closures,除非fildes等于fildes2,在这种情况下dup2()应该返回fildes2而不closures它。

如果dup2()不得不closures,等待,然后primefacesdup,这将是一个执行者的噩梦! 这比EINTR差很多close()失败)。 懦弱的POSIX甚至不会说在EINTR的情况下是否发生了dup …

Open在不同的进程中返回相同的文件描述符

dup()后跟close()来自多个线程或进程

MSYS shell保持脚本文件打开,防止修改

使用windows API检索打开的文件描述符的数量

期望在linux中fd <打开文件描述符的最大数目是否合理?

以下是C / POSIX库文档中有关标准linux实现的相关信息:

If olD and NEW are different numbers,and olD is a valID descriptor number,then `dup2\’ is equivalent to: close (NEW); fcntl (olD,F_DUPFD,NEW) However,`dup2\’ does this atomically; there is no instant in the mIDdle of calling `dup2\’ at which NEW is closed and not yet a duplicate of olD.

它将dup和dup2返回的可能的错误值列为EBADF , EINVAL和EMfile ,而没有其他错误值。 该文档指出,所有可以返回EINTR的函数都是这样列出的,这表明这些不是。 请注意,这些是通过fcntl实现的,而不是调用close 。

总结

以上是内存溢出为你收集整理的可以dup2真的返回EINTR?全部内容,希望文章能够帮你解决可以dup2真的返回EINTR?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞162 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容