В программировании операционной системы часто используются целые числа без знака для хранения последовательности битов, которые что-то описывают. В этом случае режим имеет 9 бит интереса. Один бит сообщает, может ли владелец читать, один - для записи владельца, один - для выполнения владельца и аналогичные биты для группы и другие. Хитрость в том, чтобы узнать, установлен бит или нет.
Вот пример. S_IRUSR - это имя для битовой маски, которая описывает бит «чтения владельца». Он определен в в спецификациях как 0400 (восьмеричное), что переводится в 100000000 в двоичном виде. Когда вы берете двоичный код и этого значения с маской, вы получаете значение 100000000 (двоичный код), если установлен 9-й бит маски. В противном случае вы получите 0.
Оператор if оценивается как true, если возвращается большое значение, и false в противном случае. Таким образом, если бит установлен, 'r' записывается в строку в позицию 1. Тот же метод применяется и ко всем остальным битам.