Next: Signals, Previous: Runtime Environment, Up: POSIX
Change the current working directory to path. The return value is unspecified.
Return the name of the current working directory.
If mode is omitted, returns a decimal number representing the current file creation mask. Otherwise the file creation mask is set to mode and the previous value is returned. See Assigning File Permissions, for more on how to use umasks.
E.g.,
(umask #o022)
sets the mask to octal 22/decimal 18.
Change the root directory to that specified in path. This directory will be used for path names beginning with /. The root directory is inherited by all children of the current process. Only the superuser may change the root directory.
Return an integer representing the current process ID.
Return a vector of integers representing the current supplementary group IDs.
Return an integer representing the process ID of the parent process.
Return an integer representing the current real user ID.
Return an integer representing the current real group ID.
Return an integer representing the current effective user ID. If the system does not support effective IDs, then the real ID is returned.
(provided? 'EIDs)
reports whether the system supports effective IDs.
Return an integer representing the current effective group ID. If the system does not support effective IDs, then the real ID is returned.
(provided? 'EIDs)
reports whether the system supports effective IDs.
Set the current set of supplementary group IDs to the integers in the given vector vec. The return value is unspecified.
Generally only the superuser can set the process group IDs (see Setting the Group IDs).
Sets both the real and effective user IDs to the integer id, provided the process has appropriate privileges. The return value is unspecified.
Sets both the real and effective group IDs to the integer id, provided the process has appropriate privileges. The return value is unspecified.
Sets the effective user ID to the integer id, provided the process has appropriate privileges. If effective IDs are not supported, the real ID is set instead—
(provided? 'EIDs)
reports whether the system supports effective IDs. The return value is unspecified.
Sets the effective group ID to the integer id, provided the process has appropriate privileges. If effective IDs are not supported, the real ID is set instead—
(provided? 'EIDs)
reports whether the system supports effective IDs. The return value is unspecified.
Return an integer representing the current process group ID. This is the POSIX definition, not BSD.
Move the process pid into the process group pgid. pid or pgid must be integers: they can be zero to indicate the ID of the current process. Fails on systems that do not support job control. The return value is unspecified.
Creates a new session. The current process becomes the session leader and is put in a new process group. The process will be detached from its controlling terminal if it has one. The return value is an integer representing the new process group ID.
This procedure collects status information from a child process which has terminated or (optionally) stopped. Normally it will suspend the calling process until this can be done. If more than one child process is eligible then one will be chosen by the operating system.
The value of pid determines the behaviour:
- pid greater than 0
- Request status information from the specified child process.
- pid equal to -1 or
WAIT_ANY
- Request status information for any child process.
- pid equal to 0 or
WAIT_MYPGRP
- Request status information for any child process in the current process group.
- pid less than -1
- Request status information for any child process whose process group ID is −pid.
The options argument, if supplied, should be the bitwise OR of the values of zero or more of the following variables:
— Variable: WUNTRACED
Report status information for stopped processes as well as terminated processes.
The return value is a pair containing:
- The process ID of the child process, or 0 if
WNOHANG
was specified and no process was collected.- The integer status value.
The following three
functions can be used to decode the process status code returned
by waitpid
.
Return the exit status value, as would be set if a process ended normally through a call to
exit
or_exit
, if any, otherwise#f
.
Return the signal number which terminated the process, if any, otherwise
#f
.
Return the signal number which stopped the process, if any, otherwise
#f
.
Execute cmd using the operating system's “command processor”. Under Unix this is usually the default shell
sh
. The value returned is cmd's exit status as returned bywaitpid
, which can be interpreted using the functions above.If
system
is called without arguments, return a boolean indicating whether the command processor is available.
Execute the command indicated by args. The first element must be a string indicating the command to be executed, and the remaining items must be strings representing each of the arguments to that command.
This function returns the exit status of the command as provided by
waitpid
. This value can be handled withstatus:exit-val
and the related functions.
system*
is similar tosystem
, but accepts only one string per-argument, and performs no shell interpretation. The command is executed using fork and execlp. Accordingly this function may be safer thansystem
in situations where shell interpretation is not required.Example: (system* "echo" "foo" "bar")
Terminate the current process without unwinding the Scheme stack. This is would typically be useful after a fork. The exit status is status if supplied, otherwise zero.
Executes the file named by path as a new process image. The remaining arguments are supplied to the process; from a C program they are accessible as the
argv
argument tomain
. Conventionally the first arg is the same as path. All arguments must be strings.If arg is missing, path is executed with a null argument list, which may have system-dependent side-effects.
This procedure is currently implemented using the
execv
system call, but we call itexecl
because of its Scheme calling interface.
Similar to
execl
, however if filename does not contain a slash then the file to execute will be located by searching the directories listed in thePATH
environment variable.This procedure is currently implemented using the
execvp
system call, but we call itexeclp
because of its Scheme calling interface.
Similar to
execl
, but the environment of the new process is specified by env, which must be a list of strings as returned by theenviron
procedure.This procedure is currently implemented using the
execve
system call, but we call itexecle
because of its Scheme calling interface.
Creates a new “child” process by duplicating the current “parent” process. In the child the return value is 0. In the parent the return value is the integer process ID of the child.
This procedure has been renamed from
fork
to avoid a naming conflict with the scsh fork.
Increment the priority of the current process by incr. A higher priority value means that the process runs less often. The return value is unspecified.
Set the scheduling priority of the process, process group or user, as indicated by which and who. which is one of the variables
PRIO_PROCESS
,PRIO_PGRP
orPRIO_USER
, and who is interpreted relative to which (a process identifier forPRIO_PROCESS
, process group identifier forPRIO_PGRP
, and a user identifier forPRIO_USER
. A zero value of who denotes the current process, process group, or user. prio is a value in the range [−20,20]. The default priority is 0; lower priorities (in numerical terms) cause more favorable scheduling. Sets the priority of all of the specified processes. Only the super-user may lower priorities. The return value is not specified.
Return the scheduling priority of the process, process group or user, as indicated by which and who. which is one of the variables
PRIO_PROCESS
,PRIO_PGRP
orPRIO_USER
, and who should be interpreted depending on which (a process identifier forPRIO_PROCESS
, process group identifier forPRIO_PGRP
, and a user identifier forPRIO_USER
). A zero value of who denotes the current process, process group, or user. Return the highest priority (lowest numerical value) of any of the specified processes.