st_mode, mode_t
static const mode_t who_mask[] = { S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO, /* a -> 07777 */ S_ISUID | S_IRWXU, /* u -> 04700 */ S_ISGID | S_IRWXG, /* g -> 02070 */ S_IRWXO /* o -> 0007 */ }; static const mode_t perm_mask[] = { S_IRUSR | S_IRGRP | S_IROTH, /* r -> 0444 */ S_IWUSR | S_IWGRP | S_IWOTH, /* w -> 0222 */ S_IXUSR | S_IXGRP | S_IXOTH, /* x -> 0111 */ S_IXUSR | S_IXGRP | S_IXOTH, /* X -- special -- see below -> 0111 */ S_ISUID | S_ISGID, /* s -> 06000 */ S_ISVTX /* t -> 01000 */ };
按位“与“,操作"&" ,当两个数的二进制数字,相对应的数,都为1时,才得到1。
否则为0。
按位"或",操作"|", 当相当的两个数,其中一个为1,即得到1。 两个数字为0,才返回0。
例如:
1 101010 2 3 & 4 5 010101 6 7 = 000000 8 9 10 _______________________________________ 11 12 101010 | 010101 = 111111
laser杨万荣