【问题标题】:mkdir function not working in C [duplicate]mkdir函数在C中不起作用[重复]
【发布时间】:2014-11-10 02:51:23
【问题描述】:

我试图通过尝试执行以下代码段在 C 中创建一个文件,但我得到一个“未定义标识符”mkdir“。我正在使用 Visual Studio 在 Windows 机器上工作。

#include<stdio.h>

#include<sys/types.h>

#include<sys/stat.h>

    int main()

          {

   char newTempFolderName[50];

  int a = mkdir("./newTempFolderName", 0700);

    return 0;

          } 

【问题讨论】:

  • 它在 ubuntu 中工作。在你的程序中需要什么字符数组..因为你没有使用数组。如果想为数组内容创建目录,首先初始化或扫描数组,然后在'mkdir'系统调用中使用数组,如'mkdir(newTempFolderName,07000 )。
  • 为了将来参考,在msdn上简单搜索mkdir会得到mkdir
  • @PaulR:上次我检查时,mkdir 不在 C 标准中?
  • @HarryJohnston:我不确定 C,但它是 POSIX 的一部分。
  • @PaulR:当然,但 POSIX 是 UNIX 标准。将 Windows 称为“非标准”,因为它没有实现 POSIX,就像调用 Java 非标准,因为它没有实现 C11。 :-)

标签: c windows visual-studio-2012 mkdir


【解决方案1】:

使用 WinApi 的CreateDirectory() 函数或使用_mkdir()(注意下划线符号)。

CreateDirectory() 示例 - 您需要包含 windows.h 头文件:

#include<windows.h>

int main() {
   CreateDirectory ("C:\\test", NULL);
   return 0;
}

【讨论】:

    【解决方案2】:

    试试这个:

     #if defined(_WIN32)
        _mkdir("./newTempFolderName");
         #else 
        mkdir("./newTempFolderName", 0700); 
         #endif
    

    【讨论】:

    • 我的问题已经通过应用上面的代码解决了。谢谢。
    猜你喜欢
    • 2016-12-17
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 2014-01-12
    • 2015-03-09
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多