Получить информацию о файле или директории
#include <sys/stat.h>int lstat( const char *path,struct stat *buf );int lstat64( const char *path,struct stat64 *buf );
libc
Эти функции получают информацию о файле или каталоге, указанном в path. Эта информация помещается в структуру struct stat расположенную по адресу, указанному в buf.
Результаты выполнения функции lstat() такие же, как и у функции stat() при использовании с файлом, который не является символической ссылкой. Если файл является символической ссылкой, lstat() возвращает информацию о символической ссылке, а stat() продолжает искать местонахождение конечного файла, используя содержимое символической ссылки и возвращает информацию о конечном файле.
См. 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++;} elseif ( 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 системной библиотеки