Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > L


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


lstat — get symbolic link status


#include <sys/stat.h>

int lstat( const char *path, struct stat *buf );


The parameters for the lstat() function are as follows:


is a pointer to a path name of any file within the mounted file system. All directories listed in the path name must be searchable.


is a pointer to a stat structure where the file status information is stored.


The lstat() function has the same effect as stat(), except when path refers to a symbolic link. In that case lstat() returns information about the link, while stat() returns information about the file the link references.

For symbolic links, the st_mode member will contain meaningful information when used with the file type macros, and the st_size member will contain the length of the pathname contained in the symbolic link. File mode bits and the contents of the remaining members of the stat structure are unspecified. The value returned in the st_size member is the length of the contents of the symbolic link, and does not count any trailing null. If the chosen path name or file descriptor refers to a Multi-Level Directory (MLD), and the process does not have the multilevel effective privilege, the i-node number returned in st_ino is the i-node of the MLD itself.

The stat structure contains the following members:

dev_tst_dev;/* ID of device containing a */
/* directory entry for this file */
ino_tst_ino;/* Inode number */
shortst_fstype;/* Type of filesystem this file */
/* is in; see sysfs(2) */
ushortst_mode;/* File type, attributes, and */
/* access control summary */
ushortst_basemode/* Permission bits (see chmod(1)) */
ushortst_nlink;/* Number of links */
uid_tst_uid;/* User ID of file owner */
gid_tst_gid;/* Group ID of file group */
dev_tst_rdev;/* Device ID; this entry defined */
/* only for char or blk spec files */
off_tst_size;/* File size (bytes) */
time_tst_atime;/* Time of last access */
time_tst_mtime;/* Last modification time */
time_tst_ctime;/* Last file status change time */
/* Measured in secs since */
/* 00:00:00 GMT, Jan 1, 1970 */
longst_blksize;/* File system block size */
uintst_acl:1;/* Set if the file has optional */
/* access control list entries */
/* HFS File Systems only */
uintst_aclv:1;/* Set if the file has optional */
/* access control list entries */
/* JFS File Systems only */

(Note that the position of items in this list does not necessarily reflect the order of the members in the structure.)


Upon successful completion, lstat() returns 0. Otherwise, it returns -1 and sets errno to indicate the error.


The lstat() function will fail if:


A component of the path prefix denies search permission.


Too many symbolic links were encountered in resolving path.


The length of a pathname exceeds {PATH_MAX}, or the pathname component is longer than {NAME_MAX}.


A component of the path prefix is not a directory.


A component of path does not name an existing file or path is an empty string.


A 32-bit application is making this call on a file where the st_size or other field(s) would need to hold a 64-bit value.


buf points to an invalid address. The reliable detection of this error is implementation dependent.

The lstat() function may fail if:


The pathname resolution of a symbolic link produced an intermediate result with a length exceeding {PATH_MAX}.



The st_basemode, st_acl and st_aclv fields are zero on files accessed remotely. The st_acl field is applicable to HFS File Systems only. The st_aclv field is applicable to JFS File Systems only.


Access Control Lists - HFS and JFS File Systems Only

Access control list descriptions in this entry apply only to HFS and JFS file systems on standard HP-UX operating systems.

For 32-bit applications, st_ino will be truncated to its least significant 32-bits for filesystems that use 64-bit values.


The st_uid and st_gid fields are set to -1 if they are not specified on the disk for a given file.


stat() and fstat() were developed by AT&T. lstat() was developed by the University of California, Berkeley.


lstat(): AES, SVID3


First released in Issue 4, Version 2.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.