O'Reilly logo

UNIX Filesystems: Evolution, Design, and Implementation by Steve D. Pate

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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);

images

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required