Get info about a file: id, size, flags, modification time.
Id is (statbuf.st_dev << 24) + statbuf.st_ino
Size is the file size
Flags is file type: 0 is regular file, bit 0 set executable,
bit 1 set directory, bit 2 set special file
(socket, fifo, pipe, etc.)
Modtime is modification time.
The function returns 0 in case of success and 1 if the file could
not be stat'ed.

Get info about a file system: id, bsize, bfree, blocks.
Id is file system type (machine dependend, see statfs())
Bsize is block size of file system
Blocks is total number of blocks in file system
Bfree is number of free blocks in file system
The function returns 0 in case of success and 1 if the file system could
not be stat'ed.

Expand a pathname getting rid of special shell characters like ~.$, etc.
For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
environment variables in a pathname. If compatibility is not an issue
you can use on Unix directly $XXX.

Expand a pathname getting rid of special shell characters like ~.$, etc.
For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
environment variables in a pathname. If compatibility is not an issue
you can use on Unix directly $XXX.

Expand a pathname getting rid of special shell characaters like ~.$, etc.
For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
environment variables in a pathname. If compatibility is not an issue
you can use on Unix directly $XXX. The user must delete returned string.

Set environment variable. The string passed will be owned by
the environment and can not be reused till a "name" is set
again. The solution below will lose the space for the string
in that case, but if this functions is not called thousands
of times that should not be a problem.