腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
为什么我需要在多线程程序中使用Pthread_sigmask来确保由set处理程序处理
信号
?
、
、
、
、
我有一个多线程程序,需要每隔25毫秒处理由setitimer()发送的
Linux
信号
SIGVTALRM。但是我很困惑。我不知道为什么需要使用Pthread_sigmask()来
阻塞
和取消
阻塞
信号
。在发送
信号
时,不管在给定时间处理哪个线程,
信号
都不会被处理吗?
浏览 0
提问于2016-12-07
得票数 1
1
回答
当
信号
阻塞
时获取
信号
、
、
、
当程序
阻塞
硬件生成的
信号
(如SIGSEGV ),然后得到这个
信号
时,我无法理解程序的行为。例如,如果有一个用于SIGSEGV的
信号
处理程序,它是用sigaction安装的(
信号
在处理程序中被
阻塞
),但是程序在处理程序中获得另一个SIGSEGV。在这种情况下,我找不到程序应该如何运行的描述。据我所知,在
Linux
上,
信号
将解除
阻塞
,程序将崩溃。但是其他Unix系统呢,它是在某个地方指定的吗? 谢谢。
浏览 5
提问于2015-08-09
得票数 1
回答已采纳
2
回答
sem_getvalue()在POSIX中的语义
、
、
、
、
我需要在代码中的某个点使用PThreads.解决同步问题,一个线程需要知道一个
信号
量上
阻塞
的线程数(如sempahore.h中所定义的)。当我看一看sem_getvalue(sem_t *s, int *sval)的手册页时,它指出返回值sval在
Linux
中是0,但根据POSIX可能有其他语义,即sval的绝对值被设置为
信号
量s上
阻塞
的线程数因此,我正在寻找一个
Linux
编译选项,以使这些替代语义成为可能。 我试图通过跟踪一个整数变量来模拟某个
信号
量上
阻塞</
浏览 2
提问于2019-05-12
得票数 0
1
回答
*mpi
阻塞
IO不被
linux
信号
中断
、
、
、
、
:mpi::通信器::recv(
阻塞
版本)不会被
Linux
信号
中断。如何使用SIGTERM
信号
以正确的方式终止我的程序?
浏览 3
提问于2015-09-17
得票数 3
回答已采纳
5
回答
如何显示当前持有
信号
量的进程?
、
在用户空间
Linux
中,我有一个
阻塞
在
信号
量上的进程,正如strace所发现的那样。一旦出现错误情况,
阻塞
就是可重复的,因此必须有另一个进程持有
信号
量,但没有释放它。有没有办法知道哪个其他进程当前持有该
信号
量? ipcs列出了
信号
量,/proc/sysvipc/sem也是如此。在哪里可以找到有关保留过程的信息?
浏览 0
提问于2009-09-11
得票数 9
回答已采纳
1
回答
当进程处于内核模式时,默认情况下内核会阻止挂起
信号
吗?
、
、
计算机系统:程序员的观点说: 8.5.1
信号
术语--最多一次接收待定
信号
。对于每个进程,内核主要保持pending位向量中的挂起
信号
集和blocked位向量中的
阻塞
信号
集。8.5.3当内核将进程p从内核模式切换到用户模式(例如,从系统调用返回或完成上下文切换)时,它检查未
阻塞
的挂起
信号
集(未决和
阻塞
)是否为p。但是,如果集合是非空的,那么内核在集合中选择一些
信号
k (通常最小的k)并强制p接收
信号
k。
信号</
浏览 0
提问于2020-10-25
得票数 0
2
回答
C中无自旋锁的非
阻塞
套接字接受
、
、
、
、
可能重复: 如果我使用
阻塞
套接字,那么我的主接受循环不能中断正在发送的自定义停止
信号
。但是,我希望避免使用无
阻塞
套接字的繁忙等待/自旋锁循环。这在
Linux
上的C语言中是可能的吗? 非常感谢。
浏览 3
提问于2012-11-10
得票数 2
回答已采纳
1
回答
乙状面罩后
信号
的传递
、
我的印象是,使用sigprocmask()来解除一个
信号
会导致一个挂起的
阻塞
信号
被传递到处理中。在sigprocmask()用于解除
阻塞
信号
的特定情况下,如果有一个已解除
阻塞
的挂起
信号
(例如SIGUSR1),那么
信号
SIGUSR1是否会通过调用sigprocmask()来传递给进程,该调用在解除
阻塞
不同
信号
的同时保持SIGUSR1不
阻塞
?
浏览 3
提问于2018-05-05
得票数 0
回答已采纳
1
回答
是否为C++11中的
信号
中断(或
信号
处理程序)定义了C++11行为?
、
sleep()在unistd.h中的行为在
Linux
中有很好的定义。 在
Linux
中实现不可互换的sleep()的最佳方法是什么?据我所知,这可以通过在调用sleep()之前
阻塞
所有
信号
来完成。
浏览 1
提问于2018-10-18
得票数 4
1
回答
原子“检查
信号
并进入系统调用”操作
、
、
、
该代码主要针对
Linux
,但我希望它可以在POSIX系统之间移植。 由于显而易见的原因,每个
阻塞
的系统调用都必须是一个取消点,否则线程可能永远
阻塞
,没有任何东西能够唤醒它。当线程接收到表示取消请求的特殊
信号
时,
信号
处理程序设置线程本地标志。如果线程在某些系统调用上被
阻塞
,它将失败,并返回errno == EINTR。然后它将有机会检查旗帜。如果
信号
先来,然后线程进入
阻塞
系统调用,它也会进入永久
阻塞
状态。在每次
阻塞
调用
浏览 0
提问于2013-01-30
得票数 3
1
回答
Linux
不实现POSIX
信号
队列吗?
、
、
、
但是,我看到了一些报告(、、),它们确实合并了相同
信号
的出现。我还编写了一个小测试程序,该程序确认当sigqueue
信号
被
阻塞
时,与该
信号
一起发送的同一
信号
发生在ArchLinux上。
Linux
[skipped] 5.3.8-arch1-1 #1 SMP PREEMPT [skipped] x86_64 GNU/
Linux
如果合并了相同
信号
的发生,那么通过union sigval我对POSIX的理解是不正确的,还是
Linux</e
浏览 7
提问于2019-11-08
得票数 3
1
回答
我们如何判断
信号
是否会中断系统调用的执行?
、
、
从
Linux
编程接口在较早超时后(即在时间片开始时)重新安排进程的时间;或在过早终止的意义上,什么系统调用可以被什么
信号
中断?谢谢。
浏览 0
提问于2018-12-25
得票数 -4
1
回答
Linux
从C程序的pthread重启网络
、
、
、
因为我们只希望主进程处理特定的
信号
,所以所有的pthread都
阻塞
了SIGTERM、SIGINT和SIGHUP。在其中一个pthread中,我们使用以下命令重新启动网络看起来系统调用将派生继承pthread的
信号
掩码的另一个子进程问题是它重新启动了ssh守护进程,并且新创建的ssh守护进程已经从我们的pthread继承了
信号
掩码(SIGTERM、SIGINT和SIGHUP被
阻塞</
浏览 0
提问于2011-11-17
得票数 0
回答已采纳
1
回答
如何在没有条件变量的情况下阻止线程中的操作,在
Linux
中在
信号
上恢复操作?
、
线程B应该发出一个
信号
,以获得线程A解块。我不使用在
Linux
中用于块和取消块的API。我想演示条件变量的好处。但是,我想首先编写一个在条件下
阻塞
的代码,它应该通过
信号
解除
阻塞
。在这篇文章中,我将展示一个
信号
是如何丢失的,并且竞争条件occurs.Please帮助我了解了API的使用情况。
浏览 3
提问于2014-01-05
得票数 0
回答已采纳
3
回答
O_ASYNC停止生成SIGIO
、
、
、
对于初学者,我使用的是
Linux
2.6.33,gcc 4.4.4。--- SIGTERM (Terminated) @ 0 (0) --- 正如你所看到的,第一次,制造先进先出没有问题,SIGIO生成很好;但是在exec()之后,新的先进先出不会产生任何
信号
浏览 1
提问于2011-08-12
得票数 4
回答已采纳
1
回答
接收
信号
时
阻塞
的系统调用会发生什么情况?
、
、
、
、
假设一个
linux
进程试图从套接字读取()数据,但在套接字fd上被
阻塞
。当它被
信号
中断时,它会发生什么?它会返回errno EINRPT还是继续读取套接字fd上的()?在接收
信号
时,是否有适用于所有系统调用的通用规则?
浏览 0
提问于2015-09-28
得票数 1
1
回答
是否有一种方法可以在
Linux
上原子地刷新C++中的二进制
信号
量?
、
、
、
、
一些内核在
信号
量上提供了"“操作,以解除所有等待
信号
量的任务的
阻塞
。例如,VxWorks有一个 API,它原子地解除对指定
信号
量上的所有任务的
阻塞
,也就是说,在允许运行任何任务之前,所有任务都将被解除
阻塞
。我在
Linux
上实现了一个C++类,它的行为类似于二进制
信号
量,并且还具有这种“刷新”功能。不幸的是,
Linux
上的不像API那样提供刷新()或广播()。 我尝试过的:使用 来实现二进制
信号
量。相反,<
浏览 1
提问于2020-03-02
得票数 7
回答已采纳
1
回答
linux
kill()在进程执行
信号
处理程序之后返回吗?
、
、
linux
内核是否确保程序在
linux
()返回之前就被杀死了?如果没有,我必须检查这个程序是否已经被消灭了。
浏览 2
提问于2020-03-01
得票数 1
回答已采纳
2
回答
Linux
阻塞
信号
到Python init
、
、
、
、
简而言之,除非Init为特定
信号
安装了
信号
处理程序,否则
Linux
会阻止PID 1的所有
信号
(包括SIGKILL);这是为了防止在有人向PID1发送终止
信号
时内核出现恐慌。我一直有的问题是,Python中的signal模块似乎没有以系统识别的方式安装
信号
处理程序。我的Python Init脚本似乎完全忽略了所有
信号
,因为我认为它们被
阻塞
了。我似乎找到了一个解决方案:使用ctypes通过libc中的signal()函数(在本例中为uClibc)安装<em
浏览 0
提问于2011-05-01
得票数 10
回答已采纳
1
回答
Linux
中忽略
信号
的复位掩码
、
、
、
在exec()期间,
阻塞
信号
的掩码(由sigprocmask()设置)由子进程继承。但是现在我注意到在
Linux
下,也有被忽略的
信号
(grep < /proc/self/status ^SigIgn)的掩码,它也是由子进程继承的。由于这些都是由sigaction()与act.sa_handler = SIG_IGN一起设置的,所以我希望,作为
信号
处理程序,它们在执行过程中会被重置。但事实并非如此。
Linux
手册页说“忽略的
信号
的处理保
浏览 1
提问于2019-11-22
得票数 2
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
从linux源码看socket的阻塞和非阻塞
linux非阻塞的socket发送数据出现EAGAIN错误的处理方法
Java NIO-阻塞和非阻塞
Linux系统编程 信号量
Android C++系列:Linux信号(三)
热门
标签
更多标签
云服务器
ICP备案
腾讯会议
云直播
对象存储
活动推荐
运营活动
广告
关闭
领券