Basic File Properties

Typing ls -l at the command prompt, users will see a whole host of properties associated with each file displayed, as shown in Figure 2.1. The main properties displayed are:

  • The file type and access permissions
  • The link count of the file
  • The file's owner and group
  • The size of the file
  • The date on which the file was last modified
  • The name of the file

Some of the values displayed will be obvious to most readers although there are a few peculiarities. First of all however, where does this information come from? There are two calls that the ls command must make to get this information. Here is a brief sketch of both:

  1. For the current directory, retrieve the files that are stored in the directory.
  2. For each file, obtain the properties of the file.

After this information is available, the ls command can simply print out the information that it receives. Shown below is an example of how the ls command is implemented. In summary, the system call getdents() will return all entries in the directory, then for each entry, ls will call the stat() system call to obtain the file properties.

Here is the interface for the stat() system call:

#include <sys/types.h>
#include <sys/stat.h>

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


Figure 2.1 File properties shown by typing ls -l

Thus the caller specifies the pathname of a file for which properties are to be read and gets ...

Get UNIX Filesystems: Evolution, Design, and Implementation now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.