- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下哪个系统调用可以返回 EINTR 或 EAGAIN/EWOULDBLOCK?
getsockname()
chdir()
bind()
fcntl()
listen()
setsid()
setsockopt()
socket()
stat()
unlink()
access()
accept()
open()
usleep()
dup2()
fork()
waitpid()
wait()
read()
write()
其中一些系统调用在出错时返回 EINTR 或 EAGAIN(通过手册页的 API)。
还存在一些系统调用,API 不引用 EINTR/EAGAIN,而是返回这些调用。
请帮忙。
最佳答案
我已经找到答案了。这个问题不应该被删除。通常,只有“慢”的系统调用才会返回 EINTR。慢的事情是终端 I/O 和等待的事情(选择、等待、 sleep 、暂停等)。
关于c - 哪些系统调用可以返回 EINTR 或 EAGAIN 错误代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25714578/
许多 POSIX 阻塞函数在有信号的情况下返回 EINTR。这个想法是信号处理程序首先设置一个标志(在 SIGINT 的情况下说“停止”标志),然后阻塞函数取消阻塞返回 EINTR,并且应用程序看到该
如果读取大量数据,是否需要检查errno == EINTR?我使用 pread() 函数来读取。在我的一生中,我从未见过 EINTR 返回,但我在网上看到了一些代码,其中明确地检查了它。 那么真的有必
tl;博士 在 Python 中读取管道时,我是否应该处理 EINTR“系统调用中断”错误?如果是,我该如何测试此类代码? 描述 在下面的回溯中,self._dataq 是一个 multiproces
我正在运行一个 epoll 循环,有时我对 epoll_wait 的调用返回 -1,errno 设置为 EINTR。有时,我希望这样可以结束 epoll 循环,例如 SIGTERM 或 SIGINT。
简而言之,您如何对系统调用中的 EINTR 等错误条件进行单元测试。 我正在处理的一个特定示例(它本身可能就是一个案例)是当 fclose 返回带有 (errno==EINTR) 的 EOF 时是否有
我看到了处理 EINTR 错误的代码(读、写系统调用)。我了解中断发生在两种情况下。首先,它发生在调度的每个时间片上。其次,它是通过信号发生的。但是 stackoverflow 中的每个人都说只是信号
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
在我的程序中,我有一个系统调用“sendmsg()”。我想测试如果这个系统调用被中断会发生什么。我应该怎么做? int test(args) { ----- /
我有一个线程负责轮询各种fds。我正在使用设置了超时的 epoll_wait。以下是代码片段: do { n = epoll_wait(epollFd, eventsList, eventsT
我研究发现用socket编程时会出现信号中断的情况。我搜索了一下,发现如果信号中断,我们应该重试。也就是说,我必须捕获错误并重试。我必须像这样创建套接字。 int create_sock() {
有没有专家可以帮助我解决以下问题? 我在 C 中有以下系统调用: access() unlink() setsockopt() fcntl() setsid() socket() bind() lis
来自 man -e 2 wait : The call wait(&status) is equivalent to: waitpid(-1, &status, 0); 错误号值: EINTR WNO
使用 timer_create,我们向等待 select 函数的线程发送实时信号。 这个信号在线程中被捕获和处理。基于事实,当捕获到信号时,选择将被中断,如果 select 失败并显示错误号 EINT
我发现这段代码被使用了好几次(还有一个类似的代码,它使用 open() 而不是 write())。 int c = write(fd, &v, sizeof(v)); if (c == -1 && e
我正在为嵌入式 Linux 系统编写用户应用程序,并且我正在为设备使用诸如打开、关闭、读取、ioctl 等常用功能。现在,我阅读了有关 EINTR 的信息,表明该函数被信号中断,但我不确定其含义。在我
有一些系统调用支持的 I/O 函数(我最近发现至少两个:stat() 和 mkdir() 但几乎可以肯定还有更多)根据 POSIX,可能的 errno 值中没有 EINTR,但肯定可能由于磁盘繁忙或网
在规范和两个实现中: 根据 POSIX,dup2()可能返回 EINTR。 linux 手册页将其列为允许的。 FreeBSD 手册页表明它从未返回。这是一个错误吗 - 因为它的紧密实现可以 EINT
到目前为止我的网络代码工作正常,但我有点担心我隐藏在地毯下的东西: accept、close、connect、recv 和 send 的手册页> 提到 errno.EINTR 可以在系统调用被信号中断
注意: This question与我的相当接近,但我至少可以对提供的解决方案使用一些工作示例,也许 ZeroMQ 会带来一些我不知道的魔力。 目前,我在阻止 ZeroMQ 调用时对异常使用react
我是信号量的新手,想在我的程序中添加多线程,但我无法解决以下问题:只要我没有设置 SA_RESTART,sem_wait() 应该能够接收 EINTR 并解锁旗帜。我正在向在 sem_wait() 中
我是一名优秀的程序员,十分优秀!