C 库函数 - psignal()
描述
psignal
函数是 C 标准库中的一个函数,用于将信号编号和对应的描述信息打印到标准错误输出(stderr)。此函数定义在 <signal.h>
头文件中。
语法
void psignal(int signum, const char *message);
参数
int signum
:信号编号。const char *message
:用户自定义的消息。如果此消息为NULL
或空字符串,函数只打印信号描述信息。
返回值
psignal
函数没有返回值。
实例
以下是一个使用 psignal
函数打印信号描述信息的示例程序。该程序设置一个信号处理程序,当捕获到 SIGINT
信号时,使用 psignal
函数打印信号编号和描述信息。
实例
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
// 信号处理程序
void handle_sigint(int sig) {
psignal(sig, "Caught signal");
}
int main() {
// 设置 SIGINT 的信号处理程序
signal(SIGINT, handle_sigint);
// 无限循环,等待信号
while (1) {
printf("Running... Press Ctrl+C to send SIGINT\n");
sleep(1);
}
return 0;
}
#include <signal.h>
#include <unistd.h>
// 信号处理程序
void handle_sigint(int sig) {
psignal(sig, "Caught signal");
}
int main() {
// 设置 SIGINT 的信号处理程序
signal(SIGINT, handle_sigint);
// 无限循环,等待信号
while (1) {
printf("Running... Press Ctrl+C to send SIGINT\n");
sleep(1);
}
return 0;
}
程序在捕获到 SIGINT
信号时,调用 handle_sigint
信号处理程序,并使用 psignal
函数打印信号编号和描述信息。
Running... Press Ctrl+C to send SIGINT Running... Press Ctrl+C to send SIGINT Running... Press Ctrl+C to send SIGINT Caught signal: Interrupt
解释
signal(SIGINT, handle_sigint);
:设置SIGINT
的信号处理程序为handle_sigint
。psignal(sig, "Caught signal");
:当捕获到SIGINT
信号时,使用psignal
函数打印Caught signal: Interrupt
。- 用户自定义消息
Caught signal
和信号描述信息Interrupt
一起被打印。
注意事项
psignal
函数用于将信号编号和对应的描述信息打印到标准错误输出(stderr)。- 用户自定义的消息可以为
NULL
或空字符串,如果是这样,psignal
只打印信号描述信息。