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:
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:
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);
Thus the caller specifies the pathname of a file for which properties are to be read and gets ...