温馨提示×

linux copendir怎样获取目录修改时间

小樊
81
2024-12-28 22:06:10
栏目: 智能运维

在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()函数将其转换为可读的字符串格式。最后,我们输出源目录的修改时间并关闭源目录。

0