首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >了解sigwait()以及它如何设置参数

了解sigwait()以及它如何设置参数
EN

Stack Overflow用户
提问于 2018-08-02 03:11:39
回答 1查看 1K关注 0票数 0

sigwait()的手册页让我很困惑。sigwait的签名是

代码语言:javascript
复制
 int sigwait(const sigset_t *set, int *sig);

假设我有类似于下面的代码

代码语言:javascript
复制
 sigset_t wset;
 sigemptyset(&wset);
 sigaddset(&wset,SIGHUP);
 sigaddset(&wget,SIGINT);
 sigaddset(&wget,SIGTERM);
 int sig;
 sigwait(&wset,&sig);

如果我理解正确,这将等待一个信号被发送。如果在信号集合(即sigset_t wset)中发现该信号,它将设置信号编号(即int sig),如在集合(即本例中的SIGHUP、SIGINT、SIGTERM )中所发现的那样。否则,它会将信号编号设置为0。我的理解正确吗?

我会试一试,但我现在还不能使用编译器。

编辑:进一步澄清

好吧,那么,我发送上面的一个信号:

代码语言:javascript
复制
 int res = sigwait(&wset,&sig);
 // res = 0, sig = SIGHUP, SIGINT, or SIGTERM

我发送了一个不包含在集合中的信号:

代码语言:javascript
复制
int res = sigwait(&wset,&sig);
// res = EINVAL (i.e. non-zero) and don't worry about sig

这是正确的吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51640723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档