include "readdir.m"; readdir := load Readdir Readdir->PATH; NAME, ATIME, MTIME, SIZE, NONE: con iota; COMPACT: con (1<<4); DESCENDING: con (1<<5); init: fn(path: string, sortkey: int): (array of ref Sys->Dir, int); readall: fn(fd: ref Sys->FD, sortkey: int): (array of ref Sys->Dir, int); sortdir: fn(a: array of ref Sys->Dir, key: int): (array of ref Sys->Dir, int);
Init is most often used: it reads the contents of the directory path and sorts the resulting array according to sortkey.
The sorting criteria for the returned array are based on sortkey as follows:
If the value DESCENDING is or'd into any of the values above, except NONE, the order of sorting is reversed.
The sort used is stable, of particular importance in the presence of duplicate names in a union mount. If the value COMPACT is or'd into any of the values above, including NONE, only the first (outermost) entry with a given name will be returned from reading a union mount, if names are duplicated in the union.
Readall reads file descriptor fd which must be open on a directory, and returns the contents after applying sortkey as described above for init.
Sortdir sorts the array a according to the given key, as defined earlier, except that the COMPACT option has no effect.
READDIR(2 ) | Rev: Thu Feb 15 14:43:27 GMT 2007 |