你好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中用于不同目的?
非常感谢您。