2016-04-24 16 views
0

我今天開始學習命名管道。我讀了創建新的命名管道我必須使用此功能:mkfifo (const char* nom, **mode_t mode**);mode_t 0760是什麼意思?

例如:

if (mkfifo(("essai.fifo"), **0760**) == -1) 
{ 

fprintf(stderr, "Can't create it"); 

exit(EXIT_FAILURE); 

} 

我的問題是,爲什麼在第二個參數,我們開始用「」( 760) 我知道7盡數權限所有者 6指組可讀寫 和其他沒有任何權限

+0

前導零表示八進制。 0760權限將是用戶rwx(7 = 111b),組rw-(6 = 110b),其他無(0 = 000b) –

+0

可能重複[什麼是模式\ _t 0644是什麼意思?](http://stackoverflow.com /問題/ 18415904 /什麼,做模-T-0644-平均值) –

回答

1

760是十進制(基體10)

0760 [領先0]是一個八進制數(基數爲8)

0x0760 [前綴0x]是一個十六進制數(基數爲16)

前導0是不實際數字的一部分,只是一個指示它是八進制數,而不是十進制數。

-2

的第一比特(「0」的0760)表示,包括設置用戶ID上執行位和粘滯位執行位,設定組ID的許可

0

作爲John3136指出的,領先「0」表示後面的「數字」(760)是八進制數,因此您指出新管道的權限位因此是rwxrw ----對於所有者,組和其他人。