Next: User Information, Previous: Ports and File Descriptors, Up: POSIX
These procedures allow querying and setting file system attributes (such as owner, permissions, sizes and types of files); deleting, copying, renaming and linking files; creating and removing directories and querying their contents; syncing the file system and creating special files.
Return
#tif path corresponds to an existing file and the current process has the type of access specified by how, otherwise#f. how should be specified using the values of the variables listed below. Multiple values can be combined using a bitwise or, in which case#twill only be returned if all accesses are granted.Permissions are checked using the real id of the current process, not the effective id, although it's the effective id which determines whether the access would actually be granted.
Return an object containing various information about the file determined by object. object can be a string containing a file name or a port or integer file descriptor which is open on a file (in which case
fstatis used as the underlying system call).The object returned by
statcan be passed as a single parameter to the following procedures, all of which return integers:
stat:dev- The device containing the file.
stat:ino- The file serial number, which distinguishes this file from all other files on the same device.
stat:mode- The mode of the file. This includes file type information and the file permission bits. See
stat:typeandstat:permsbelow.stat:nlink- The number of hard links to the file.
stat:uid- The user ID of the file's owner.
stat:gid- The group ID of the file.
stat:rdev- Device ID; this entry is defined only for character or block special files.
stat:size- The size of a regular file in bytes.
stat:atime- The last access time for the file.
stat:mtime- The last modification time for the file.
stat:ctime- The last modification time for the attributes of the file.
stat:blksize- The optimal block size for reading or writing the file, in bytes.
stat:blocks- The amount of disk space that the file occupies measured in units of 512 byte blocks.
In addition, the following procedures return the information from stat:mode in a more convenient form:
stat:type- A symbol representing the type of file. Possible values are
regular,directory,symlink,block-special,char-special,fifo,socketandunknown.stat:perms- An integer representing the access permission bits.
Similar to
stat, but does not follow symbolic links, i.e., it will return information about a symbolic link itself, not the file it points to. path must be a string.
Return the value of the symbolic link named by path (a string), i.e., the file that the link points to.
Change the ownership and group of the file referred to by object to the integer values owner and group. object can be a string containing a file name or, if the platform supports
fchown, a port or integer file descriptor which is open on the file.If object is a symbolic link, either the ownership of the link or the ownership of the referenced file will be changed depending on the operating system (
lchownis unsupported at present). If owner or group is specified as-1, then that ID is not changed.
Change the permissions of the file referred to by object. object can be a string containing a file name or a port or integer file descriptor which is open on a file (in which case
fchmodis used as the underlying system call). mode specifies the new permissions as a decimal number, e.g.,(chmod "foo" #o755).
Set the access and modification times for the file named by pathname. If actime or modtime is not supplied, then the current time is used. actime and modtime must be integer time values as returned by the
current-timeprocedure. For example,(utime "foo" (- (current-time) 3600))will set the access time to one hour in the past and the modification time to the current time.
Delete (or "unlink") the file specified by path.
Copy the file specified by path-from to path-to.
Rename the file specified by path-from to path-to.
Create a new name path-to in the file system for the file named by path-from. If path-from is a symbolic link, the link may or may not be followed depending on the system.
Create a symbolic link named path-to with the value (i.e., pointing to) path-from.
Create a new directory named by path. If mode is omitted then the permissions of the directory file are set using the current umask. Otherwise they are set to the decimal value specified with mode.
Remove the existing directory named by path. The directory must be empty for this to succeed.
Open the directory specified by path and return a directory stream.
Return a boolean indicating whether object is a directory stream as returned by
opendir.
Return (as a string) the next directory entry from the directory stream stream. If there is no remaining entry to be read, return the end-of-file object.
Reset the directory port stream so that the next call to
readdirwill return the first directory entry.
Close the directory stream stream.
Create a new special file, such as a file corresponding to a device. path specifies the name of the file. type should be one of the following symbols: regular, directory, symlink, block-special, char-special, fifo, or socket.
perms (an integer) specifies the file permissions. dev (an integer) specifies which device the special file refers to. Its exact interpretation depends on the kind of special file being created. For example,
(mknod "/dev/fd0" 'block-special #o660 (+ (* 2 256) 2))
Return a name in the file system that does not match any existing file. However there is no guarantee that another process will not create the file after
tmpnamis called. Care should be taken if opening the file, e.g., use theO_EXCLopen flag.