Где я могу найти точное определение той конструкции, которую ожидает семейное системное соединение STAT
?Каково точное определение структуры, переданной системному вызову STAT?
Обратите внимание, что я имею в виду необработанного системных вызовов можно было бы назвать в сборе (система вызывает номер 4
, 5
и 6
на x86_64), а не фантики, которые, как правило, предоставляемые LIBC.
Страница руководства, stat(2)
, и то, что я мог бы вывести из исходного кода Linux и glibc, приводило к путанице и противоречивым результатам (упорядочивание полей другой структуры, дополнительные поля, заполнение).
Я уверен, что я виноват в том, что не смотрю, где я должен, но я не могу найти информацию, которую мне нужно. Который заставил меня опубликовать этот вопрос.
Пояснение: Что я ищу это точное определение структуры стат, возвращаемый системным вызовом на любой данной архитектуры. Я знаю, что могу экспериментально определить эту информацию. Эксперимент ограничивается моей конкретной архитектурой. Кроме того, я ожидаю, что что-то столь же важно, как и структура данных, используемая в ABI Linux, где-то документируется. Я хочу знать, где.
Вопрос here не содержит информации, требуемой в этом сообщении. Отмените это сообщение как дубликат.
Почему вы думаете, что системные вызовы 4, 5, 6 стоять 'стат()' системные вызовы? Как я вижу из [здесь] (http://lxr.free-electrons.com/source/include/uapi/asm-generic/unistd.h), они являются '__NR_io_getevents',' __NR_setxattr', '__NR_lsetxattr'. Я что-то упускаю? Кроме того, какую конкретную версию ядра вы имеете в виду? –
@SamProtsenko Это цифры, которые я передаю в инструкцию syscall. В моей системе 'x86_64/3.13.0',' SYS_STAT' определяется как '__NR_stat', который в свою очередь определяется как 4 в файле:'/usr/include/x86_64-linux-gnu/asm/unistd_64.h' – urubi