Как просмотреть список функций библиотеки c?

Я новичок в программировании на Linux. Я обнаружил, что способ просмотра списка системных вызовов в Linux через командную строку:

man syscalls

Но теперь я хочу просмотреть список функций библиотеки c, как я могу это сделать? Какая команда поможет мне перечислить функции библиотеки c? И еще вопрос, где находятся системные вызовы и страницы справочника по функциям библиотеки? Спасибо.

1
задан 26 December 2013 в 19:28

3 ответа

Я нашел полезный браузер автономной документации под названием (Zeal) , похожий на Dash.

Другие параметры:

whereis glibc

или

dpkg -L *libc*

И откройте файлы в текстовом редакторе.

Чтобы рекурсивно искать во внутренних файлах строку: grep -R "some string" /path/to/includes

Некоторые пути для рассмотрения:

  • / usr / local / include
  • / usr / target / include
  • / usr / include

Другие опции могут включать в себя:

0
ответ дан 26 December 2013 в 19:28

Какая команда поможет мне перечислить функции библиотеки c?

Вот один из способов перечислить все функции, определенные в стандартной библиотеке C (GNU libc):

nm -D /lib/$(uname -m)-linux-gnu/libc-*.so | grep -vw U | grep -v "_" | cut -d " " -f3

Обратите внимание, что системные вызовы также будут включены, поскольку они на самом деле являются функциями, которые обертывают реальные системные вызовы.

Где находятся системные вызовы и страницы справочника по функциям библиотеки?

Страницы справочника по системному вызову находятся под:

/usr/share/man/man2

Страницы справочника по функциям библиотеки находятся под:

/usr/share/man/man3
0
ответ дан 26 December 2013 в 19:28

Существует хороший пакет для отображения заголовка функции C с именем ref. Чтобы узнать больше об этом см. man ref . Он имеет хорошую базу данных, где вы можете найти список библиотечных функций C.

Функции перечислены в файле /usr/share/elvis/stubs/ansistub.c. Вы можете непосредственно просмотреть его, чтобы увидеть функции, или вы можете отфильтровать их, как вы хотите.

Вы можете использовать следующую большую строку в вашем терминале, чтобы увидеть полный список сразу,

cat /usr/share/elvis/stubs/ansistub.c | grep "^int\|^char\|^void\|^double\|^ldiv_t\|^unsigned\|^type\|^struct\|^FILE\|^size_t\|^time_t\|^long\|^clock\|^mbstowcs\|^div_t" | awk 'NR > 12' | less

Вы получите вывод наподобие

void abort(void)
int abs(int num)
double acos(double cosvalue)
char *asctime(const struct tm *currtime)
double asin(double sinvalue)
void assert(int expression)
int atexit(void(*func)(void))
long int atol(const char *string)

....

Или вы можете скопируйте список в файл myCfunction.list, используя

cat /usr/share/elvis/stubs/ansistub.c | grep "^int\|^char\|^void\|^double\|^ldiv_t\|^unsigned\|^type\|^struct\|^FILE\|^size_t\|^time_t\|^long\|^clock\|^mbstowcs\|^div_t" | awk 'NR > 12' > myCfunction.list

. Чтобы использовать его, сначала установите ref с помощью приведенной ниже команды,

sudo apt-get install elvis-tools
0
ответ дан 26 December 2013 в 19:28

Другие вопросы по тегам:

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