#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define err(msg) perror(msg)
static void mkdirs(const char *dir)
{
char tmp[1024];
char *p;
if (strlen(dir) == 0 || dir == NULL) {
printf("strlen(dir) is 0 or dir is NULL./n");
return;
}
memset(tmp, 0, sizeof(tmp));
strncpy(tmp, dir, strlen(dir));
if (tmp[0] == '/' && tmp[1]== '/')
p = strchr(tmp + 2, '/');
else
p = strchr(tmp, '/');
if (p) {
*p = '/0';
mkdir(tmp,0777);
chdir(tmp);
} else {
mkdir(tmp,0777);
chdir(tmp);
return;
}
mkdirs(p + 1);
}
int main(void)
{
mkdirs("//home//1//2//3//4//");
return 0;
}
本文介绍了一个使用C语言编写的程序,该程序能够递归地创建多级子目录,并且能够处理绝对路径和相对路径的情况。通过使用mkdir和chdir等系统调用,实现了对目录结构的灵活操作。
2083

被折叠的 条评论
为什么被折叠?



