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 

 

 

posted @ 2013-05-03 14:35  sndnvaps  阅读(238)  评论(0编辑  收藏  举报