C 创建目录

C 创建目录,c,C,我正在尝试使用以下代码创建一个目录。它进行编译,但不创建目录。有什么建议吗 #include <stdio.h> #include <string.h> #include <sys/stat.h> int main(void) { const char base[] = "filename"; char filename [ FILENAME_MAX ]; int number = 42; sprintf(filename, "%s/%d",

我正在尝试使用以下代码创建一个目录。它进行编译,但不创建目录。有什么建议吗

#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
int main(void)
{
  const char base[] = "filename";
  char filename [ FILENAME_MAX ];
  int number = 42;
  sprintf(filename, "%s/%d", base, number);
  printf("filename = \"%s\"\n", filename);
  mkdir (filename, S_IRWXU);
  return 0;
}
#包括
#包括
#包括
内部主(空)
{
常量字符基[]=“文件名”;
字符文件名[filename_MAX];
整数=42;
sprintf(文件名,“%s/%d”,基数,数字);
printf(“文件名=\%s\”\n,文件名);
mkdir(文件名,S_IRWXU);
返回0;
}

文件名目录是否已经存在
mkdir()
一次只创建一个目录;如果父目录也不存在,您必须首先单独创建它。

很可能它无法创建目录,因为您正在尝试创建嵌套目录,而它的父目录不存在。无法递归创建目录。但是,除非正确检查程序中的返回代码和错误,否则您只能猜测。

为什么不捕获mkdir的返回代码?linux.die.net/man/3/mkdir检查
mkdir
是否返回
-1
以及
errno
的值。试着问它为什么不工作
if(mkdir(filename,S_IRWXU)!=0){perror(“mkdir()error”)}
@hari:请不要在die.net上发布链接。由于搜索引擎优化(SEO),这个网站是一个糟糕的地方,过时的信息首先出现在谷歌搜索结果中。使用kernel.org-my bad。谢谢你让我知道。