Go的syscall和C的stat.h中定义的常数之间的差异

时间:2019-04-13 13:55:59

标签: c linux go constants stat

你好stackoverflow的朋友,

我在Arch Linux上。

我正在检查syscall包中定义的与权限位相关的常量,这是我内部项目的一部分,我发现我感兴趣的一些常量的值与stat中定义的不同。H。

我调查的是

        S_IRGRP                          = 0x20
        S_IWGRP                          = 0x10
        S_IXGRP                          = 0x8
https://golang.org/pkg/syscall/

中定义的

而在linux的stat.h中,该值为

#define S_IRGRP 00040
#define S_IWGRP 00020
#define S_IXGRP 00010

https://github.com/torvalds/linux/blob/master/include/uapi/linux/stat.h#L35) 这些是我到目前为止检查的值,可能还有更多与C头文件不匹配的值。 到目前为止,我已经声明了常量,并且该常量的值与项目中的stat.h中的常量匹配并且正在使用它,但是我不确定为什么go的syscall常量和stat.h之间的值存在这种差异。 #define常量。

以前有人遇到过这种情况吗,知道为什么会有这种区别吗?这些常量是否在C和Go中用于不同目的?

非常感谢您。

0 个答案:

没有答案