#linux #operating-system
#linux #операционная система
Вопрос:
Я просматриваю руководство по Linux для open
функции здесь, но я не могу найти целочисленные значения для различных флагов, таких как O_WRONLY, O_CREAT, O_RDONLY
. Есть ли способ найти эту информацию?
Комментарии:
1. Почему вам нужно это знать, а не просто использовать макросы?
2. При импорте заголовков вы можете использовать
printf("O_WRONLY is defined as %dn", O_WRONLY);
для отображения числового значения. В качестве альтернативы, откройте заголовки и следуйте включениям в определение. Знание числового значения не обязательно для использования этой функции в C.
Ответ №1:
Вот как я нашел определения:
$ find /usr/include -type f -name '*.h' -exec grep -E '^#define.*O_(WRONLY|RDONLY|RDWR)' {}
/usr/include/asm-generic/fcntl.h:#define O_RDONLY 00000000
/usr/include/asm-generic/fcntl.h:#define O_WRONLY 00000001
/usr/include/asm-generic/fcntl.h:#define O_RDWR 00000002
/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h:#define O_RDONLY 00
/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h:#define O_WRONLY 01
/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h:#define O_RDWR 02