get information about a file of directory
#include <sys/stat.h> int lstat( const char *path, struct stat *buf );
The lstat() function obtains information about the file or directory referenced in path. This information is placed in the structure located at the address indicated by buf.
The results of lstat() are identical to stat() when used on a file that is not a symbolic link. If the file is a symbolic link then lstat() returns information about the symbolic link, while stat() continues to resolve the pathname using the contents of the symbolic link, and returns information about the resulting file.
See stat() for details.
errno, fstat(), fsys_fstat(), fsys_stat(), readlink(), 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> void 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] ); } } exit( ecode ); }
POSIX 1003.1
QNX