lstat(), lstat64()

Получить информацию о файле или директории

Прототип:

#include <sys/stat.h>
int lstat( const char *path,
struct stat *buf );
int lstat64( const char *path,
struct stat64 *buf );

Аргументы:

path
Путь к файлу или каталогу, о котором необходимо получить информацию.
buf
Указатель на буфер типа struct stat, где функция может хранить информацию.

Библиотека:

libc

Описание:

Эти функции получают информацию о файле или каталоге, указанном в path. Эта информация помещается в структуру struct stat расположенную по адресу, указанному в buf.

Результаты выполнения функции lstat() такие же, как и у функции stat() при использовании с файлом, который не является символической ссылкой. Если файл является символической ссылкой, lstat() возвращает информацию о символической ссылке, а stat() продолжает искать местонахождение конечного файла, используя содержимое символической ссылки и возвращает информацию о конечном файле.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

См. stat() для подробностей.

Примеры:

/*
* Iterate through a list of files, and report
* for each if it is a symbolic link
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
int main( int argc, char **argv )
{
int ecode = 0;
int n;
struct stat sbuf;
for ( n = 1; n < argc; ++n )
{
if ( lstat( argv[n], &sbuf ) == -1 )
{
perror( argv[n] );
ecode++;
} else
if ( S_ISLNK( sbuf.st_mode ) )
{
printf( "%s is a symbolic link\n", argv[n] );
} else {
printf( "%s is not a symbolic link\n", argv[n] );
}
}
return (ecode);
}

Классификация:

lstat() — POSIX 1003.1; lstat64() — Поддержка больших файлов

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Нет

Тематические ссылки:

errno, struct stat, fstat(), readlink(), stat()




Предыдущий раздел: Описание API системной библиотеки