2016-04-24 2 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 дает все разрешения для владельца -означает группа, может читать и писать , а другие не имеет никакого разрешения

+0

Ведущий нуль представляет восьмеричную. 0760 правами будут пользователь rwx (7 = 111b), группа rw- (6 = 110b), другие нет (0 = 000b) –

+0

Возможный дубликат [Что означает режим \ _t 0644?] (Http://stackoverflow.com/вопросы/18415904/что-делает-режим-трет-0644-среднее) –

ответ

1

760 является десятичное (основание 10)

0760 [ведущий 0] является восьмеричным числом (основание 8)

0x0760 [ведущий 0x] представляет собой шестнадцатеричное число (основание 16)

Ведущий 0 не на самом деле часть числа, просто индикатор того, что он восьмеричный, а не десятичный.

-2

первый бит ('0' из 0760) представляют собой разрешение, включая Set-User-ID на выполнение бит, Set-Group-ID бит выполнения и липкий бит

0

В John3136 указывает, ведущий «0» означает, что следующее «число» (760) является восьмеричным, и, как вы указали, бит разрешения для нового канала будет поэтому rwxrw ---- для владельца, группы и всех остальных.

Смежные вопросы