在Linux中,copendir()
函数用于复制一个目录
要获取目录的修改时间,您可以使用stat()
函数。以下是一个示例代码,展示了如何使用copendir()
和stat()
函数获取目录的修改时间:
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
if (argc != 3) {
fprintf(stderr, "Usage: %s <source_dir> <destination_dir>\n", argv[0]);
return EXIT_FAILURE;
}
const char *source_dir = argv[1];
const char *destination_dir = argv[2];
// 打开源目录
DIR *source_dir_handle = opendir(source_dir);
if (!source_dir_handle) {
perror("Failed to open source directory");
return EXIT_FAILURE;
}
// 复制源目录到目标目录
if (copendir(source_dir, destination_dir) == NULL) {
perror("Failed to copy directory");
closedir(source_dir_handle);
return EXIT_FAILURE;
}
// 获取源目录的修改时间
struct stat source_dir_stat;
if (stat(source_dir, &source_dir_stat) == -1) {
perror("Failed to get source directory stats");
closedir(source_dir_handle);
return EXIT_FAILURE;
}
// 输出源目录的修改时间
printf("Source directory '%s' modified on: %s", source_dir, ctime(&source_dir_stat.st_mtime));
// 关闭源目录
closedir(source_dir_handle);
return EXIT_SUCCESS;
}
在这个示例中,我们首先检查命令行参数的数量,然后使用copendir()
函数复制源目录到目标目录。接下来,我们使用stat()
函数获取源目录的修改时间,并使用ctime()
函数将其转换为可读的字符串格式。最后,我们输出源目录的修改时间并关闭源目录。