lstat64()--Get File or Link Information (Large File Enabled)


  Syntax
 #include <sys/stat.h>

 int lstat64(const char *path, struct stat64 *buf);  
  Service Program Name: QP0LLIB1

  Default Public Authority: *USE

  Threadsafe: Conditional; see Usage Notes for lstat().

The lstat64() function gets status information about a specified file and places it in the area of memory pointed to by buf. If the named file is a symbolic link, lstat64() returns information about the symbolic link itself.

The information is returned in the stat64 structure, referred to by buf. For details on the stat64 structure, see stat64()--Get File Information (Large File Enabled).

If the named file is not a symbolic link, lstat64() updates the time-related fields before putting information in the stat64 structure.

For additional information about parameters, authorities required, and error conditions, see lstat()--Get File or Link Information.

See QlgLstat64()--Get File or Link Information (Large File Enabled) for a description and an example of supplying the path in any CCSID.


Usage Notes

  1. When you develop in C-based languages, the prototypes for the 64-bit APIs are normally hidden. To use the lstat64() API and the struct stat64 data type, you must compile the source with the _LARGE_FILE_API defined.

  2. Start of change When you develop in C-based languages and this function is compiled with _64_BIT_TIME defined, it will be mapped to lstat64_time64(). This mapping will occur whether or not _LARGE_FILES is also defined. Note that the type of the buffer parameter, struct stat *, also will be mapped to type struct stat64_time64 *. See stat64_time64() for more information about this structure. End of change

  3. All of the usage notes for lstat() apply to lstat64(). See Usage Notes in the lstat() API.

Example

The following example provides status information for a file.

Note: By using the code examples, you agree to the terms of the Code license and disclaimer information.

#define _LARGE_FILE_API
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <time.h>
#include <stdio.h>

main() {
  char fn[]="temp.file", ln[]="temp.link";
  struct stat64 info;
  int file_descriptor;

  if ((file_descriptor = creat64(fn, S_IWUSR)) < 0)
    perror("creat64() error");
  else {
    close(file_descriptor);
    if (link(fn, ln) != 0)
      perror("link() error");
    else {
      if (lstat64(ln, &info) != 0)
        perror("lstat64() error");
      else {
        puts("lstat64() returned:");
        printf("  inode:   %d\n",   (int) info.st_ino);
        printf(" dev id:   %d\n",   (int) info.st_dev);
        printf("   mode:   %08x\n",       info.st_mode);
        printf("  links:   %d\n",         info.st_nlink);
        printf("    uid:   %d\n",   (int) info.st_uid);
        printf("    gid:   %d\n",   (int) info.st_gid);
        printf("   size:   %lld\n", (long long) info.st_size);
      }
      unlink(ln);
    }
    unlink(fn);
  }
}

Output:

lstat() returned:
  inode:   3022
 dev id:   1
   mode:   00008080
  links:   2
    uid:   137
    gid:   500
   size:   18

API introduced: V4R4

[ Back to top | UNIX-Type APIs | APIs by category ]