Я использую dev систему, где я должен указать название lib при доступе к функции в ней.
Я использовал функции как открытый () прежде и так или иначе узнал, что они находятся в libc.so.
Теперь я хочу использовать lstat (), но кажется, что этот не находится в libc. К сожалению, страницы справочника, на которые я смотрел, не документируют местоположение функций.
Так, два вопроса:
Создайте простой тестовый сценарий на C, скомпилируйте его и запустите на нем 'ldd -r', чтобы проверить, какие библиотеки загружены. Если у вас нет lstat () в C, значит, у вас проблема с вашим dev env. Или этот env восходит к эпохе символических ссылок: -)
Это один из способов сделать это:
tomislav@malik:~$ cd /usr/lib
tomislav@malik:/usr/lib$ grep "lstat()" *
Binary file libperl.so.5.10 matches
Binary file libperl.so.5.10.0 matches
tomislav@malik:/usr/lib$
Из справочной страницы (man lstat):
LSTAT(P)
NAME
lstat - get symbolic link status
SYNOPSIS
#include <sys/stat.h>
int lstat(const char *restrict path, struct stat *restrict buf);
lstat
находится в libc, а libc скомпонован по умолчанию. Вам не нужно ничего делать для использования lstat
, кроме включения заголовочного файла для него #include
на страницах руководства обычно указывается, в какой библиотеке они находятся.