linux c语言创建多级目录
/* mkdir 一次只能创建一级目录,怎样创建多级目录.* 用access 判断目录是否已经创建.* 用mkdir逐级创建目录*/#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/stat.h>int mkdirs(char *path){char str[5
·
/* mkdir 一次只能创建一级目录,怎样创建多级目录.
* 用access 判断目录是否已经创建.
* 用mkdir逐级创建目录
*/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
int mkdirs(char *path)
{
char str[512];
strncpy(str, path, 512);
int len=strlen(str);
for(int i=0; i<len; i++ )
{
if( str[i]=='/' ) //逐级检查各级目录
{
str[i] = '\0';
if( access(str,0)!=0 ) //如果访问该目录返回不成功
{
mkdir( str, 0755 ); //则创建该目录, 这里是逐级创建的.
}
str[i]='/';
}
}
if( len>0 && access(str,0)!=0 ) //检查最后一级目录
{
mkdir( str, 0755 ); //若不可访问,则创建该目录.
}
struct stat s;
stat(path,&s);
if(S_ISDIR(s.st_mode) )return 0;
return 1;
}
int main()
{
int ret=mkdirs("/tmp/34/56/abc");
printf("ret is %d\n",ret);
return 0;
}
更多推荐
已为社区贡献4条内容
所有评论(0)