Linux 系统下使用 C 语言创建目录
在 Linux 系统中,目录的创建是文件管理的基础操作之一,使用 C 语言,我们可以通过系统调用来实现目录的创建,本文将详细介绍在 Linux 系统下使用 C 语言创建目录的方法和步骤。

引入必要的头文件
我们需要引入必要的头文件,以便使用系统调用和定义相关函数,在 C 语言中,通常使用 sys/stat.h 和 sys/types.h 头文件来获取目录创建所需的数据类型和宏定义。
#include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h>
定义创建目录的函数
我们需要定义一个函数来执行目录创建操作,这个函数将使用 mkdir 系统调用,并返回一个整型值来表示操作的结果。
int create_directory(const char *path) {
int status = mkdir(path, 0777);
return status;
}
在这个函数中,path 参数指定了要创建的目录的路径,0777 是目录的权限,表示所有用户都具有读、写和执行的权限。
检查目录创建结果
在调用 mkdir 函数后,我们需要检查其返回值来确定目录是否成功创建,如果返回值是 0,则表示目录创建成功;如果返回值是 -1,则表示创建失败,我们需要检查错误代码来确定失败的原因。

int main() {
const char *dir_path = "/path/to/new/directory";
int result = create_directory(dir_path);
if (result == 0) {
printf("Directory created successfully.\n");
} else {
perror("Failed to create directory");
}
return 0;
}
在 main 函数中,我们定义了要创建的目录路径,并调用 create_directory 函数,如果目录创建成功,将打印成功消息;如果失败,将使用 perror 函数打印错误信息。
使用 stat 函数验证目录存在
为了确保目录确实被创建,我们可以使用 stat 函数来检查目录是否存在。
#include <sys/stat.h>
int directory_exists(const char *path) {
struct stat buffer;
return (stat(path, &buffer) == 0);
}
在 directory_exists 函数中,我们使用 stat 函数获取指定路径的状态信息,如果函数返回 0,则表示路径存在;否则,表示路径不存在。
完整示例代码
以下是完整的示例代码,展示了如何在 Linux 系统下使用 C 语言创建目录,并验证其存在性。

#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
int create_directory(const char *path) {
int status = mkdir(path, 0777);
return status;
}
int directory_exists(const char *path) {
struct stat buffer;
return (stat(path, &buffer) == 0);
}
int main() {
const char *dir_path = "/path/to/new/directory";
int result = create_directory(dir_path);
if (result == 0) {
printf("Directory created successfully.\n");
if (directory_exists(dir_path)) {
printf("Directory exists.\n");
} else {
printf("Directory does not exist.\n");
}
} else {
perror("Failed to create directory");
}
return 0;
}
通过以上步骤,我们可以在 Linux 系统下使用 C 语言创建目录,并验证其存在性。


















