我想在与我的程序相同的路径中创建一个目录,最终将数据保存到。为此,我需要由预处理器分支包围的特定于操作系统的调用,但在此之前我从未编写过任何特定于操作系统的代码。我不确定我需要包含哪些 header ,或者要使用它们的哪些功能。
如果操作系统是 Windows、Mac 和 Linux(无论哪种方法都适用于大多数 Linux 发行版),我应该使用哪些函数和 header ?
我不想为此使用 boost 文件系统的原因是,我整天都很难编译它;它的文档和构建系统,呃,对于我简单的灵魂来说似乎太学术/冗长了!最终,我相信维护 3 或 4 个单独的文件加载分支对我来说会更快。
最佳答案
在所有 Unix 系统(Linux、Mac OS X 等)上,您应该使用两个参数调用 mkdir
:
mkdir(filename, 0755);
在 Windows 上,您希望使用 _mkdir
时只有一个参数:
_mkdir(filename);
所以你的代码应该说
#ifdef WIN32
#include <direct.h>
rc = _mkdir(filename);
#else
#include <sys/stat.h>
rc = mkdir(filename, 0755);
#endif
关于c++ - 如何在不使用boost的情况下创建目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27884953/