Где я могу получить список системных вызовов UNIX? - PullRequest
9 голосов
/ 20 апреля 2010

Где несколько списков системных вызовов в UNIX?

Это не был мой оригинальный вопрос, но все равно спасибо:)

Ответы [ 8 ]

7 голосов
/ 20 апреля 2010

man 2 syscalls

Кроме этого, вы можете посмотреть в /usr/include/sys/syscall.h (который в моей системе просто #include /usr/include/bits/syscall.h) Это генерируется во время сборки libc из списка системных вызовов ядра.

Вы также можете использовать источник ядра Linux для SYSCALL_DEFINE. (Я не эксперт BSD, но я думаю, что в FreeBSD эквивалент SYSCALL_MODULE)

4 голосов
/ 20 апреля 2010

Чтение Fine Руководство. Для системных вызовов начинайте с

man 2 intro

Так я начал работать в UNIX. У нас тогда не было никакого модного интернета ...

3 голосов
/ 21 апреля 2010

Для официальных, авторитетных IEEE Std. 1003.1 / Справочные руководства по одной спецификации UNIX (UNIX 2004), см .:

A полный список функций (системные интерфейсы) можно найти в разделе «Системные интерфейсы» или по ссылке. Я также хотел бы использовать это как возможность подключить мой Development / Coding Search пользовательский поисковый движок, который включает и сильно смещен в сторону единой спецификации UNIX / IEEE Std. 1003,1. Например, при стандартном поиске по fopen , close , unix и т. Д. Были выдвинуты рекламные предложения, чтобы гарантировать, что результаты из достоверной документации находятся на самом верху , Добавление «man» перед запросом сильно взвешивает результат в пользу IEEE Std. 1003.1 man-страница, как в man find , man free , man inttypes.h и т. Д., Хотя большинство запросов должно поддерживать стандарт IEEE Std. 1003.1 даже без добавления «man» (если это не так, введите bad query и сообщите мне).

2 голосов
/ 12 июля 2012

В FreeBSD лучшее место для поиска системных вызовов - файл /usr/src/sys/sys/syscall.h Это на FreeBSD 9.0

2 голосов
/ 20 апреля 2010

Какая операционная система, точно? Man раздел 2 документирует системные вызовы, однако полный набор зависит от того, какой у вас UNIX.

POSIX.1 определяет стандартный набор интерфейсов операционной системы, однако ни одна операционная система не ограничивается только этими. В общем, у вас есть разновидности BSD и SYSV, которые имеют немного другую семантику. Однако в настоящее время предполагаемые системные вызовы на самом деле являются квазибиблиотечными функциями.

Единственный ИСТИННЫЙ ответ требует специальной установки и проверки файла

 /usr/include/syscall.h
1 голос
/ 20 апреля 2010

Что вам действительно нужно сделать, так это взять копию «Расширенного программирования в среде Unix» У. Ричарда Стивенса. Это классическая книга о том, как программировать Unix-подобные ОС. Книга старая, и MacO / iPhoneO - это другие наиболее традиционные разновидности Unix, но книга - отличный способ изучить основы и понять, как предполагается использовать API. Проверьте это в Amazon

0 голосов
/ 20 апреля 2010

В большинстве сред, ls /usr/man/2/ добьется цели, хотя это может быть /usr/local/man или /usr/share/man или даже /usr/local/share/man.

РЕДАКТИРОВАТЬ: Возможно, даже переменная окружения MANPATH указывает вам на правильное место.

0 голосов
...