当前位置: 技术问答>linux和unix
求教一个递归创建目录的函数问题。
来源: 互联网 发布时间:2016-12-09
本文导语: 我写了一个函数,目的是创建一个路径深度较深的目录,方法是一层一层的检查目录是否存在,如果不存在,则创建它。 但是实际应用时有时会出错,日志记录的是目录已存在的错误,但是如果目录已存在的话,opend...
我写了一个函数,目的是创建一个路径深度较深的目录,方法是一层一层的检查目录是否存在,如果不存在,则创建它。
但是实际应用时有时会出错,日志记录的是目录已存在的错误,但是如果目录已存在的话,opendir返回不应该是非空吗?
但是实际应用时有时会出错,日志记录的是目录已存在的错误,但是如果目录已存在的话,opendir返回不应该是非空吗?
//-----------------------------------------------------------------------
//recursive make directory
//-----------------------------------------------------------------------
int RecurMkDir(char *pathName, int pathLen)
{
char *delim = "/";
char *path;
char *tmpPath;
char *tmp;
DIR *pTmpDir = NULL;
path = (char *)malloc(pathLen+1);
tmpPath = (char *)malloc(pathLen+1);
memset(path, 0, pathLen);
memset(tmpPath, 0, pathLen);
memcpy(path, pathName, pathLen);
tmp = strtok(path, delim);
while (tmp != NULL)
{
sprintf(tmpPath, "%s/%s", tmpPath,tmp);
pTmpDir = opendir(tmpPath);
if (pTmpDir == NULL)
{
if (mkdir(tmpPath, 0666)