温馨提示×

linux copendir如何判断目录是否存在

小樊
82
2024-12-28 22:04:08
栏目: 智能运维

在Linux中,您可以使用copendir()函数来创建一个新的目录,同时检查给定的父目录是否存在

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>

int copendir(const char *dir, const char *newdir) {
    struct stat st;

    // 检查父目录是否存在
    if (stat(dir, &st) == -1 || !S_ISDIR(st.st_mode)) {
        perror("Error checking if parent directory exists");
        return -1;
    }

    // 创建新目录
    if (copydir(dir, newdir) == -1) {
        perror("Error creating new directory");
        return -1;
    }

    return 0;
}

int main() {
    const char *parent_dir = "/path/to/parent";
    const char *new_dir = "/path/to/new";

    if (copendir(parent_dir, new_dir) == 0) {
        printf("New directory created successfully.\n");
    } else {
        printf("Failed to create new directory.\n");
    }

    return 0;
}

在这个示例中,我们首先使用stat()函数检查给定的父目录是否存在。如果存在并且是一个目录,我们继续使用copydir()函数创建新的子目录。如果父目录不存在或者不是一个目录,我们返回-1并输出错误信息。

0