实用生活c语言脚本
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
// 清理临时文件目录
void clean_temp_directory() {
const char* temp_dir = "/tmp"; // 可自定义需要清理的目录
char command[1024];
// 构建清理命令(删除7天前的文件)
snprintf(command, sizeof(command), "find %s -type f -mtime +7 -delete", temp_dir);
if (system(command) != 0) {
fprintf(stderr, "清理临时文件失败\n");
} else {
printf("临时文件清理完成\n");
}
}
// 检查当前时间是否到达执行时间(示例为每天凌晨1点)
int should_execute() {
time_t now = time(NULL);
struct tm* time_info = localtime(&now);
// 设置执行时间(1点0分0秒)
return (time_info->tm_hour == 1 && time_info->tm_min == 0 && time_info->tm_sec == 0);
}
int main() {
printf("日常清理服务启动\n");
while (1) {
// 每分钟检查一次时间
if (should_execute()) {
clean_temp_directory();
}
sleep(60); // 每分钟检查一次
}
return 0;
}
这个 C 语言脚本实现了日常文件清理功能,主要包含以下特性:
- 定时检查:每分钟检查一次当前时间,判断是否到达预设的执行时间(示例为每天凌晨 1 点)
- 清理功能:使用系统命令清理指定目录下 7 天前的旧文件(默认清理 /tmp 目录,可通过修改
temp_dir
变量自定义) - 循环运行:程序启动后会持续运行,适合作为后台服务
- 错误处理:包含基本的命令执行结果检查
使用说明:
- 编译:
gcc daily_cleaner.c -o daily_cleaner
- 运行:
./daily_cleaner
- 自定义:
- 修改
temp_dir
变量设置需要清理的目录 - 在
should_execute
函数中修改tm_hour
/tm_min
/tm_sec
设置执行时间 - 调整
mtime +7
中的数字修改文件保留天数
- 修改