как интерпретировать восьмеричные флаги в /proc/PID/fdinfo/N

Я нашел свою проблему.Я клонировал свой оригинальный Debian, чтобы создать новый Jenkins Slave, поэтому я думаю, что существует конфликт с исходным MAC-адресом. Когда я пытаюсь запустить и подключиться к шпаклевке на Slave и Master, это не работает, но когда один из них выключен, он работает.

Я опубликую решение, когда найду, откуда взялась проблема

РЕДАКТИРОВАТЬ :Он отлично работает с двумя узлами, поэтому я думаю, что клонировал виртуальную машину без создания нового MAC-адреса.

1
19.03.2021, 04:37
1 ответ

Я не знаю документации, в которой перечислены значения констант флагов, но вам не нужно искать в исходном коде или даже в заголовочных файлах, вы можете спросить у компилятора:

echo O_APPEND | gcc -include fcntl.h -E -

Перебор всех флагов вopen(2)на x86 -64 Linux:

$ for flag in APPEND ASYNC CLOEXEC CREAT DIRECT DIRECTORY DSYNC EXCL LARGEFILE NOATIME NOCTTY NOFOLLOW NONBLOCK PATH SYNC TMPFILE TRUNC; do printf '%s: ' O_$flag; echo O_$flag | gcc -D_GNU_SOURCE -include fcntl.h -E - | tail -n 1; done
Флаг Значение
O_APPEND02000
O_ASYNC020000
O_CLOEXEC02000000
O_CREAT0100
O_DIRECT040000
O_DIRECTORY0200000
O_DSYNC010000
O_EXCL0200
O_LARGEFILE0
O_NOATIME01000000
O_NOCTTY0400
O_NOFOLLOW0400000
O_NONBLOCK04000
O_PATH010000000
O_SYNC04010000
O_TMPFILE(020000000 | 0200000)
O_TRUNC01000

(Некоторые из них зависят -от архитектуры; например, O_LARGEFILE— это 0100000 на i386.)

1
28.04.2021, 22:59

Теги

Похожие вопросы