120 lines
4.1 KiB
Plaintext
120 lines
4.1 KiB
Plaintext
File and Time Extensions for TinyScheme (FTX) 1.0 [August, 2004]
|
|
|
|
Based on the TinyScheme Extensions (TSX) 1.1 [September, 2002]
|
|
(c) 2002 Manuel Heras-Gilsanz (manuel@heras-gilsanz.com)
|
|
|
|
This software is subject to the license terms contained in the
|
|
LICENSE file.
|
|
|
|
|
|
TSX FUNCTIONS
|
|
|
|
TSX incorporates the following functions:
|
|
|
|
*File system (included if HAVE_FILESYSTEM is defined in tsx.h)
|
|
|
|
Scheme already defines functions to read and write files. These
|
|
functions allow access to the filesystem to check if a certain
|
|
file exists, to get its size, etc.
|
|
|
|
In addition to these functions, a string constant DIR-SEPARATOR
|
|
has been defined. It should be used in scripts which build file
|
|
names that include one or more directories to keep the scripts
|
|
portable to different operating systems.
|
|
|
|
(file-exists? filename)
|
|
filename: string
|
|
|
|
This function returns #t if the indicated file exists, and
|
|
#f if it does not exist or if it is not accessible to the
|
|
requesting user. Accessibility is based on the real user
|
|
and group ID rather than the effective user ID and group ID.
|
|
|
|
(file-type filename)
|
|
filename: string
|
|
|
|
This function returns a value based on the file type. It
|
|
returns FILE_TYPE_FILE (1) for regular files, FILE_TYPE_DIR
|
|
(2) for directories, and FILE_TYPE_LINK (3) for symbolic
|
|
links. The value FILE_TYPE_OTHER (0) is returned if the file
|
|
is of some other type, does not exist, or if the user does
|
|
not have sufficient privileges to allow the file type to be
|
|
determined.
|
|
|
|
(file-size filename)
|
|
filename: string
|
|
|
|
This function returns the size (in bytes) of the
|
|
indicated file, or #f if the file does not exists or
|
|
is not accessible to the requesting user.
|
|
|
|
(file-delete filename)
|
|
filename: string
|
|
|
|
Removes the specified file. It returns #t if the operation
|
|
succeeds, or #f otherwise (e.g., because the file is
|
|
read-only, or because the file does not exist).
|
|
|
|
(dir-open-stream path)
|
|
path: string
|
|
|
|
Opens a "directory stream" on the provided directory path.
|
|
This stream will provide all the files within the directory,
|
|
using the function read-dir-entry. The stream should be closed
|
|
at the end with dir-close-stream.
|
|
|
|
(dir-read-entry dirstream)
|
|
dirstream: directory stream, obtained with dir-open-stream.
|
|
|
|
It returns the name of the following directory entry, or eof
|
|
if all the entries were provided. Check the return value with
|
|
with eof-object?.
|
|
|
|
(dir-rewind dirstream)
|
|
dirstream: directory stream, obtained with dir-open-stream.
|
|
|
|
Resets the given directory stream. The next call to dir-read-entry
|
|
will return the first entry again. It returns #t if the operation
|
|
succeeds, or #f otherwise (ie. dirstream not valid)..
|
|
|
|
(dir-close-stream dirstream)
|
|
dirstream: directory stream, obtained with dir-open-stream.
|
|
|
|
Close directory stream. No further calls to read-dir-entry should
|
|
be performed.
|
|
|
|
(dir-make dirname . mode)
|
|
dirname: string
|
|
mode: integer representing permissions
|
|
|
|
Create the directory specified, setting the directory permissions based
|
|
upon the optional mode argument (taking into account the current
|
|
umask). If no mode is specified then use the default (umask)
|
|
permissions. Returns #t if the operation succeeds, otherwise #f.
|
|
Possible reasons for failure are that the directory already exists,
|
|
the user is not authorized to create it, or the mode is incorrectly
|
|
specified).
|
|
|
|
*Time (available if HAVE_TIME is defined in tsx.h)
|
|
|
|
(time)
|
|
Returns the current local time, as a list of integer
|
|
containing:
|
|
(year month day-of-month hour min sec millisec)
|
|
The year is expressed as an offset from 1900.
|
|
|
|
(gettimeofday)
|
|
Returns a list containing the number of seconds from
|
|
the beginning of the day, and microseconds within the
|
|
current second.
|
|
|
|
(usleep microsec)
|
|
microsec: integer
|
|
|
|
Suspends execution of the calling thread during the
|
|
specified number of microseconds.
|
|
|
|
|
|
END
|
|
|