将自定义函数设置为所有信号的处理程序

托玛·拉杜·佩特雷斯库

我有此任务要做:

编写一个将所有可能的信号void myfunct(void(*f)(int sig))设置f为处理程序的函数。

我有两个问题:

  1. 如何获得所有可能的信号?有这个功能吗?我可以通过某种方式遍历它们吗?
  2. f给定带有参数的功能将其设置为处理程序真的有效吗?它不应该没有任何参数吗?

谢谢你。

聚丙烯
  1. 如何获得所有可能的信号?有这个功能吗?我可以通过某种方式遍历它们吗?

大多数实现都提供一个常量,例如NSIGGlibc提供NSIG)或_NSIGLinux提供_NSIG)。因此,您可以遍历该常数,并为所有常数设置相同的信号处理功能。

没有“最高信号编号”的POSIX定义值。POSIX中有一个建议添加一个宏NSIG_MAX

{NSIG_MAX}

sysconf(_SC_NSIG)的最大可能返回值。请参见[交叉引用到XSH sysconf()]。{NSIG_MAX}的值应不大于sigset_t类型(见[cross-ref to])能够表示的信号数量,而忽略sigfillset()或sigaddset()施加的任何限制。

但是它还没有加入POSIX(很可能它将成为POSIX版本的一部分-第8期)。

  1. 给定函数f为参数,将函数f设置为处理程序真的有效吗?它不应该没有任何参数吗?

设置信号处置时,信号处理功能所采用的参数无关紧要它使用信号号,但不会阻止您将其用作多个信号的处理程序。

但是有一些特殊情况需要处理。某些无法捕获或忽略的信号(SIGKILLSIGSTOP)。还有其他信号(SIGFPESIGILLSIGSEGV)为其中,同时允许捕获,信号处理程序不能返回到它的调用者(即你需要从信号处理程序退出)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NodeJS / Express:如何将自定义标头设置为所有res.render但未设置为res.send?

为我的所有textview设置自定义字体

将自定义C ++容器的大小设置为模板参数与构造函数

是否可以将自定义服务帐户设置为(ADC)应用程序默认凭据?

自动为所有NewProject将自定义文件添加到Eclipse / Mule Studio

将自定义图像设置为没有强制标签的复选框

将自定义域设置为“主要”的好处

将自定义 ActionBar 重力设置为 RIGHT

将自定义字体设置为微调器

在OpenCv中将自定义模型设置为CvSVM

Android:将自定义值设置为NumberPicker

将自定义chipDrawable背景设置为Chip

如何将自定义委托设置为UITableViewController?

带有自定义信号处理程序的PHP SIGINT无法杀死CURL

如何在Flask中为所有HTTP错误实现自定义错误处理程序?

将自定义处理程序类添加到 JSF 自定义组件

从自定义信号处理程序调用原始信号处理程序

android通过编程将自定义值设置为自定义textview

如何将自定义标记设置为自定义视图?

如何将自定义tabBar设置为我的自定义TabBarController?

将自定义FXML属性设置为自定义javafx组件的参数

将自定义样式设置为android中的自定义视图内的textviews

使用Spring将重定向设置为自定义身份验证失败处理程序

如何在Python中为argparse设置自定义输出处理程序?

如何从异步处理程序的信号处理程序中捕获自定义异常?

jQuery,从自定义事件中删除所有处理程序

获取在自定义用户控件中声明的事件的所有事件处理程序

为所有截击请求设置自定义标头

如何自动为所有 HttpClient 设置自定义 DelegatingHandler?