c语言手写代码实现简单的mkdir 命令
时间: 2024-10-18 12:21:51 浏览: 31
在C语言中,`mkdir()`是一个系统调用,用于创建新的目录。由于C语言本身并不直接支持命令行操作,我们需要通过头文件`unistd.h`来间接地使用这个功能。以下是一个简单的示例,演示如何在C程序中手动模拟`mkdir`命令的功能:
```c
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define MAX_PATH_LEN 1024
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: %s directory_path\n", argv[0]);
return 1;
}
char path[MAX_PATH_LEN];
strcpy(path, argv[1]);
// 检查路径长度是否合法
if (strlen(path) >= MAX_PATH_LEN) {
printf("Directory path too long.\n");
return 1;
}
mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; // 使用默认权限
int result = mkdir(path, mode);
if (result == -1) {
perror("mkdir failed:");
return 1;
} else {
printf("Successfully created directory: %s\n", path);
}
return 0;
}
```
在这个例子中,我们首先检查命令行参数的数量和路径长度。然后,尝试创建指定的目录,并设置默认权限。如果`mkdir()`函数返回错误码(通常是由于目录已存在、权限不足等原因),我们会打印错误信息并退出。
注意:在实际生产环境中,直接使用`mkdir()`可能会导致安全风险,因为用户可以输入任意路径。在更复杂的应用中,通常会添加额外的安全检查和错误处理。
阅读全文