флаги для st_mode системного вызова stat

Я пытаюсь понять флаги для поля st_mode структуры stat этой команды stat, но у меня такая сложная время! Я нашел этот пример здесь , но я действительно не понимаю этот фрагмент кода:

if ( mode & S_IRUSR ) str[1] = 'r';    /* 3 bits for user  */
if ( mode & S_IWUSR ) str[2] = 'w';
if ( mode & S_IXUSR ) str[3] = 'x';

if ( mode & S_IRGRP ) str[4] = 'r';    /* 3 bits for group */
if ( mode & S_IWGRP ) str[5] = 'w';
if ( mode & S_IXGRP ) str[6] = 'x';

if ( mode & S_IROTH ) str[7] = 'r';    /* 3 bits for other */
if ( mode & S_IWOTH ) str[8] = 'w';
if ( mode & S_IXOTH ) str[9] = 'x';

Я знаю, что «&» - это побитовый оператор И, но ничего больше. Я даже не знаю, что спросить.

PD: Извините за предыдущие вопросы, которые я задал. Я не знаю, как отметить ответ на вопрос или что-то подобное: (

7
задан tshepang 11 May 2014 в 19:19
поделиться