我正在研究一些c代码,并尝试以编程方式创建目录。我刚才发现mkdir(文件,“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+");
}
}
感谢您提供的任何帮助。
答案 0 :(得分:8)
根据this manpage,第二个参数是mode_t
,它是一种数字类型,并提供目录所需的访问模式。在这里,您应该提供0777
,一个八进制数字,表示r
,w
和x
的所有内容,这受umask
限制。
我不知道哪些信息适用于Windows。
答案 1 :(得分:4)
答案 2 :(得分:4)