как найти заголовочный файл для включения в библиотечную функцию в Linux - PullRequest
8 голосов
/ 04 марта 2010

Учитывая функцию, скажем atoi, как я могу найти файл заголовка, который я должен включить, если я хочу использовать эту функцию? Я всегда озадачен этим вопросом. Если позвольте мне рассматривать функцию, подобную "atoi", как linux c api, я могу сформулировать свой вопрос иначе: Является ли документ для linux c api?

Ответы [ 5 ]

12 голосов
/ 04 марта 2010

Справочные страницы . Введите man atoi (или, как правило, man <function>) в командной строке. Он предоставит вам информацию об использовании, а также список заголовков для включения.

Справочные страницы также документируют программы и команды (find, grep, cd и т. Д.). Иногда вы можете столкнуться со случаем, когда программа имеет то же имя, что и функция C (например, запись). В этом случае вам нужно попросить man посмотреть правильный раздел руководства, раздел 2 для системных вызовов и раздел 3 для библиотечных функций. Вы делаете это, вставляя номер раздела между «человеком» и именем команды: man 2 write. Если вы не знаете, является ли данная функция системным вызовом или библиотечной функцией, попробуйте оба варианта.

Вы можете узнать больше о справочных страницах, набрав man man.

2 голосов
/ 29 апреля 2013

Или вы можете найти в каталоге вашей системы / usr / include вхождения определения функции, которое вы ищете. Это особенно полезно для встроенных или урезанных систем Linux, в которых отсутствуют страницы руководства.

find /usr/include -name "*.h" -print | xargs grep "<function-you-are-looking-for>"

Например, если вы делаете:

find /usr/include -name "*.h" -print | xargs grep atoi

Вы получите что-то вроде этого:

/usr/include/stdlib.h:extern int atoi (__const char *__nptr)

Результат содержит как имя файла заголовка, так и определение интерфейса.

  • Обратите внимание, что ваш каталог / usr / include может находиться в другом месте.
1 голос
/ 04 марта 2010

Если вы используете ctags и редактор vim и настроили ctags для сканирования / usr / include, тогда ctrl-] пока вы находитесь в функции, которую хотите найти, переносит вас в файл заголовка!

1 голос
/ 04 марта 2010
Является ли документ для linux c api?

Конечно. Документация доступна в виде справочных страниц . Наберите man <function> в терминале и наслаждайтесь. Какой заголовочный файл вам нужно включить, обычно отображается вверху.

0 голосов
/ 04 марта 2010

Вы также можете использовать следующее

whereis <function name> 

Это даст путь к функции. Затем откройте путь с помощью редактора vim. Затем с помощью редактора "vim" вы можете увидеть файл заголовка.

Пример

> whereis atoi 
   atoi: /usr/share/man/man3/atoi.3.gz

 > vim /usr/share/man/man3/atoi.3.gz

   ----------
   ----------
  .B #include <stdlib.h>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...