gpt4 book ai didi

c++ - 为什么在 Windows 的 sys/types.h 中没有定义 S_IRWXG 和 S_IRWXO?

转载 作者:行者123 更新时间:2023-11-30 02:58:40 26 4
gpt4 key购买 nike

我正在将一些软件从 Unix 移植到 Window,并在 Windows XP SP3 上使用 g++ v4.7。我有一个如下所示的头文件声明:

#include <string>
#include <sys/types.h>

using namespace std;

bool MakeDir(const string &dirName,
mode_t mode =S_IRWXU | S_IRWXG | S_IRWXO);

但是当我编译它的时候,我得到了这个错误:

FileName.h:35:40: error: 'S_IRWXG' was not declared in this scope
FileName.h:35:50: error: 'S_IRWXO' was not declared in this scope

为什么 sys/types.h 会定义 S_IRWXU 而不是 S_IRWXGS_IRWXO

我找到了一些在 Windows 上定义它们的代码,如下所示:

#define S_IRWXG (S_IRWXU >> 3)
#define S_IRWXO (S_IRWXG >> 3)

这似乎是一个杂乱无章的问题,有没有更好的方法来获取这些定义?我不想使用 Cygwin。

最佳答案

S_IRWXG 和 S_IRWXO 对于 Linux 是实际的,在 Windows 上你不需要它们,您可以从 Linux 中获得的值

关于c++ - 为什么在 Windows 的 sys/types.h 中没有定义 S_IRWXG 和 S_IRWXO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13575543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com