在 Linux 下,copendir
函数本身并不用于创建新目录。实际上,copendir
用于打开一个目录流,以便你可以读取目录中的内容。要创建新目录,你应该使用 mkdir
函数。
以下是一个简单的示例,展示了如何在 C 语言中使用 mkdir
函数创建一个新目录:
#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
int main() {
const char *dir_name = "new_directory";
// 使用 mkdir 创建新目录
if (mkdir(dir_name, 0755) == 0) {
printf("Directory created successfully.\n");
} else {
perror("Error creating directory");
}
return 0;
}
在这个示例中,我们使用 mkdir
函数创建了一个名为 new_directory
的新目录。0755
是目录的权限,表示所有者具有读、写和执行权限,而其他用户具有读和执行权限。
如果你需要在程序中同时打开一个目录并创建新目录,你可以先使用 opendir
打开目录,然后使用 mkdir
创建新目录。这是一个简单的示例:
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
int main() {
const char *dir_name = "example_directory";
DIR *dir_stream;
// 尝试打开目录
dir_stream = opendir(dir_name);
if (dir_stream == NULL) {
// 如果目录不存在,则创建它
if (mkdir(dir_name, 0755) == 0) {
printf("Directory created successfully.\n");
// 关闭目录流
closedir(dir_stream);
// 重新打开目录
dir_stream = opendir(dir_name);
if (dir_stream == NULL) {
perror("Error opening directory");
return 1;
}
} else {
perror("Error creating directory");
return 1;
}
} else {
printf("Directory already exists.\n");
// 关闭目录流
closedir(dir_stream);
}
// 在这里处理目录内容...
// 关闭目录流
closedir(dir_stream);
return 0;
}
在这个示例中,我们首先尝试使用 opendir
打开一个名为 example_directory
的目录。如果目录不存在(即 opendir
返回 NULL
),我们使用 mkdir
创建它,然后再次尝试使用 opendir
打开新创建的目录。