当前位置:   article > 正文

Linux信号函数_linux 信号函数

linux 信号函数

kill()

#include <sys/types.h>

#include <signal.h>

int kill(pid_t pid, int sig);

可将信号发送给指定的进程或进程组中的每一个进程

 

raise()

#include <signal.h>

int raise(int sig);

向自身发送信号

 

alarm()

#include <unistd.h>

unsigned int alarm(unsigned int seconds);

设置定时器,当定时时间到后,内核会向进程发送SIGALRM信号

需要注意的是 alarm 闹钟并不能循环触发,只能触发一次,若想要实现循环触发,可以在 SIGALRM 信

号处理函数中再次调用 alarm()函数设置定时器。

pause()

#include <unistd.h>

int pause(void);

使得进程暂停运行、进入休眠状态,直到进程捕获到一个信号为止,只有执行了信号处理函数并从其返回时, pause()才返回,在这种情况下, pause()返回-1,并且将 errno 设置为 EINTR

 

abort()

#include <stdlib.h>

void abort(void);

通常产生SIGABRT信号来终止调用该函数的进程

SIGABRT 信号的系统默认操作是终止

进程运行、并生成核心转储文件;当调用 abort()函数之后,内核会向进程发送 SIGABRT 信号

sigqueue()

#include <signal.h>

int sigqueue(pid_t pid, int sig, const union sigval value);

发送实时信号,信号范围是34-64

发送进程使用 sigqueue()系统调用向另一个进程发送实时信号以及伴随数据。

⚫ 接收实时信号的进程要为该信号建立一个信号处理函数,使用sigaction函数为信号建立处理函数,

并加入 SA_SIGINFO,这样信号处理函数才能够接收到实时信号以及伴随数据,也就是要使用

sa_sigaction 指针指向的处理函数,而不是 sa_handler,当然允许应用程序使用 sa_handler,但这样

就不能获取到实时信号的伴随数据了

sigaction()

#include <signal.h>

int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);

设置信号处理方式

允许单独获取信号的处理函数而不是设置,并且还可以设置各种属性对调用信号处理函数时

的行为施以更加精准的控制

 

sigprocmask()

#include <signal.h>

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

随时显式的向信号掩码中添加/移除信号

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/913976
推荐阅读
相关标签
  

闽ICP备14008679号