在Ubuntu系统中,使用readdir
函数读取目录内容时,可以通过编写代码来实现日志记录功能。以下是一个简单的示例,展示了如何在C语言中使用readdir
函数并记录日志。
首先,确保你已经安装了必要的开发工具和库:
sudo apt-get update
sudo apt-get install build-essential
然后,创建一个C文件,例如readdir_logging.c
,并添加以下代码:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <time.h>
void log_message(const char *message) {
FILE *log_file = fopen("readdir_log.txt", "a");
if (log_file == NULL) {
perror("Failed to open log file");
return;
}
time_t now = time(NULL);
fprintf(log_file, "%s: %s\n", ctime(&now), message);
fclose(log_file);
}
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <directory>\n", argv[0]);
return EXIT_FAILURE;
}
const char *directory = argv[1];
DIR *dir = opendir(directory);
if (dir == NULL) {
perror("Failed to open directory");
return EXIT_FAILURE;
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
log_message(entry->d_name);
}
closedir(dir);
return EXIT_SUCCESS;
}
这个程序接受一个目录路径作为命令行参数,使用readdir
函数读取目录内容,并将每个文件名记录到readdir_log.txt
文件中。
编译并运行程序:
gcc -o readdir_logging readdir_logging.c
./readdir_logging /path/to/directory
运行后,你会在当前目录下看到一个名为readdir_log.txt
的日志文件,其中包含了读取到的文件名和对应的时间戳。
这个示例展示了如何使用C语言实现基本的日志记录功能。你可以根据需要扩展这个示例,例如添加更多的日志信息、处理错误情况等。