Linux C/C++ 递归创建目录:使用 access 和 mkdir 实现
{"title": "Linux C/C++ 递归创建目录:使用 access 和 mkdir 实现", "description": "本文介绍了使用 C 语言和 Linux 系统调用函数递归创建目录的实现方法,代码示例使用 access 判断目录是否存在,并通过递归调用创建父目录,最后使用 mkdir 创建目标目录。", "keywords": "Linux, C, C++, 递归创建目录, access, mkdir, 文件系统, 目录管理", "content": "\n\n下面是一个使用C语言和Linux系统调用函数实现创建目录的代码示例:\n\nc\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n\nint create_directory(const char* path) {\n struct stat st;\n if (access(path, F_OK) == 0) {\n // 目录已经存在\n return 0;\n } else {\n // 目录不存在\n if (stat(path, &st) != 0) {\n // 获取父目录\n char parent[strlen(path) + 1];\n strcpy(parent, path);\n char* p = strrchr(parent, '/');\n if (p != NULL) {\n *p = '\0';\n // 递归创建父目录\n create_directory(parent);\n }\n }\n // 创建目录\n if (mkdir(path, 0755) == 0) {\n return 0;\n } else {\n return -1;\n }\n }\n}\n\nint main() {\n const char* path = "/opt/file_video_orig/A";\n if (create_directory(path) == 0) {\n printf("目录创建成功\n");\n } else {\n printf("目录创建失败\n");\n }\n return 0;\n}\n\n\n上述代码中的create_directory函数用于递归创建目录。首先使用access函数判断目录是否存在,如果存在则直接返回成功。如果不存在,则使用stat函数获取父目录,并递归调用create_directory函数创建父目录。最后,使用mkdir函数创建目录。\n\n在main函数中调用create_directory函数创建目录/opt/file_video_orig/A,并根据返回值判断目录创建是否成功。\n\n请注意,在使用该代码之前,请确保具有足够的权限来创建目录。\n
原文地址: https://www.cveoy.top/t/topic/qdXL 著作权归作者所有。请勿转载和采集!