编写一个C语言程序,当该程序接收到SIGUSR1信号时,显示当前系统时间。
时间: 2023-07-14 18:13:56 浏览: 124
能够显示当前系统时间
下面是一个简单的 C 语言程序,它可以在接收到 SIGUSR1 信号时显示当前系统时间:
```c
#include <stdio.h>
#include <signal.h>
#include <time.h>
void handler(int signum) {
time_t current_time;
char* c_time_string;
// 获取当前时间
current_time = time(NULL);
// 将时间转换为字符串
c_time_string = ctime(¤t_time);
// 显示时间
printf("Current time: %s\n", c_time_string);
}
int main() {
// 注册信号处理函数
signal(SIGUSR1, handler);
printf("Waiting for SIGUSR1 signal...\n");
// 等待信号
while (1) {
}
return 0;
}
```
在这个程序中,我们使用了 signal() 函数来注册一个 SIGUSR1 信号的处理函数 handler()。当程序接收到 SIGUSR1 信号时,会自动调用 handler() 函数。
在 handler() 函数中,我们使用了 time() 函数来获取当前时间,并使用 ctime() 函数将时间转换为字符串。最后,我们使用 printf() 函数显示当前时间。
在主函数中,我们使用了一个无限循环来等待信号的到来。这个循环会一直执行,直到程序被手动中止。
阅读全文