在Linux下编写程序,每次按下ctrl+C组合键时,将系统时间字符串写入(追加写入)文件note.data
时间: 2024-04-15 16:29:25 浏览: 133
在 Linux 下编写程序,可以使用信号处理机制来捕获 `SIGINT` 信号(对应 Ctrl+C 组合键),然后在信号处理函数中获取系统时间字符串,并将其追加写入到文件 `note.data` 中。
下面是一个示例程序的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <time.h>
void signalHandler(int sig) {
time_t currentTime;
struct tm* timeInfo;
char timeString[80];
FILE* file;
// 获取当前时间
time(¤tTime);
timeInfo = localtime(¤tTime);
strftime(timeString, sizeof(timeString), "%Y-%m-%d %H:%M:%S", timeInfo);
// 打开文件进行追加写入
file = fopen("note.data", "a");
if (file == NULL) {
perror("Error opening file");
exit(1);
}
// 写入时间字符串
fprintf(file, "%s\n", timeString);
// 关闭文件
fclose(file);
}
int main() {
// 注册信号处理函数
signal(SIGINT, signalHandler);
// 保持程序运行
while (1) {
// 空循环,等待信号发生
}
return 0;
}
```
在这个示例程序中,我们使用 `signal()` 函数注册了一个信号处理函数 `signalHandler()` 来捕获 `SIGINT` 信号。在信号处理函数中,我们获取当前系统时间,并将其追加写入到文件 `note.data` 中。程序会一直运行,直到收到 Ctrl+C 信号。
编译并运行这个程序,每次按下 Ctrl+C 组合键时,系统时间字符串将会被追加写入到 `note.data` 文件中。请确保程序运行时有权限写入该文件。
阅读全文