Я новичок в программировании на Linux. Я обнаружил, что способ просмотра списка системных вызовов в Linux через командную строку:
man syscalls
Но теперь я хочу просмотреть список функций библиотеки c, как я могу это сделать? Какая команда поможет мне перечислить функции библиотеки c? И еще вопрос, где находятся системные вызовы и страницы справочника по функциям библиотеки? Спасибо.
Я нашел полезный браузер автономной документации под названием (Zeal) , похожий на Dash.
Другие параметры:
whereis glibc
или
dpkg -L *libc*
И откройте файлы в текстовом редакторе.
Чтобы рекурсивно искать во внутренних файлах строку: grep -R "some string" /path/to/includes
Некоторые пути для рассмотрения:
Другие опции могут включать в себя:
Какая команда поможет мне перечислить функции библиотеки 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
Существует хороший пакет для отображения заголовка функции 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