在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并输出错误信息。