在C语言中创建目录

3

我正在处理一些C语言代码,尝试以编程方式创建一个文件夹。我之前找到了mkdir(file, "w+")函数来创建一个可写的目录,但是我刚刚发现在编译时会产生警告。

warning: passing argument 2 of âmkdirâ makes integer from pointer without a cast

以下是我使用的代码

void checkLogDirectoryExistsAndCreate()
{
    struct stat st;
    char logPath[FILE_PATH_BUF_LEN];
    sprintf(logPath, "%s/logs", logRotateConfiguration->logFileDir);
    if (stat(logPath, &st) != 0)
    {
        printf("Making log directory\n");
        mkdir(logPath, "w+");
    }
}

感谢您提供的任何帮助。
3个回答

8
根据此手册,第二个参数是一个mode_t,它是一个数字类型,表示目录所需的访问模式。在这里,你应该提供0777,一个八进制数,意思是所有的rwx,并且受到umask的限制。
我不知道这些信息中哪些适用于Windows。

5

mkdir的第二个参数应该是mode_t类型。 chmod手册列出了可用的模式(可以进行OR运算)。


4
< p > mkdir 函数的第二个参数不是字符串。它是一个标志组合,用于定义模式。

有关更多信息,请参见mkdir手册页。请参见sys/stat.h以获取完整的标志列表(搜索“S_IRWXU”)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接