有没有一种跨平台的方法,可以使用C代码“创建文件夹/目录”?还是说我必须使用预处理器来声明要使用哪种方法?
有没有一种跨平台的方法,可以使用C代码“创建文件夹/目录”?还是说我必须使用预处理器来声明要使用哪种方法?
#define
来完成这个任务。#include <windows.h>
#define mkdir(dir, mode) _mkdir(dir)
之后你可以通过以下方式调用该函数:
mkdir("/tmp/mydir", 0755);
#define open(name, ...) _open(name, __VA_ARGS__)
#define read(fd, buf, count) _read(fd, buf, count)
#define close(fd) _close(fd)
#define write(fd, buf, count) _write(fd, buf, count)
#define dup2(fd1, fd2) _dup2(fd1, fd2)
#define unlink(file) _unlink(file)
#define rmdir(dir) _rmdir(dir)
#define getpid() _getpid()
#define usleep(t) Sleep((t)/1000)
#define sleep(t) Sleep((t)*1000)
mkdir
命令被 许多操作系统 用于创建新目录。因此,我们可以使用它以(大多数情况下)跨平台的方式创建目录。
#include <stdlib.h>
//so we can use system()
稍后,我们可以用这个来创建目录
system("mkdir my_dir");
_mkdir("./newfolder")
可能在 Windows 上运行,但在 Linux 上可能无法正常工作。 - Stanmkdir("./directory", 0700)
。那么在Windows中,我需要使用哪个头文件来实现相同的功能呢? - user6774424_mkdir
,不是mkdir
。两者是有区别的 :) - Stanstd::filesystem::create_directory()
函数移植到C语言中就是一种标准的方式。 - user16217248