Node:System Utilities, Next:Trees, Previous:Random, Up:Top
This package contains utilities for invoking services from the operating
system. To load the package, enter the query
| ?- use_module(library(system)).
Certain predicates described below take names of files or directories as
arguments. These must be given as atoms, and the predicates below will
not call absolute_file_name/3
on them.
Some predicates are described as invoking the default shell. Specifically
this means invoking /bin/sh
on UNIX platforms. On MSDOS, Windows
and OS/2, the command interpreter given by the environment variable
COMSPEC
is invoked.
This library fully supports multiple SICStus run-times in a process.
now(-When)
datime(-Datime)
Unifies Datime with the current date and time as a datime/6
record of the form
datime(Year,Month,Day,Hour,Min,Sec)
.
All fields are integers.
datime(+When,-Datime)
Given a UNIX timestamp When,
unifies Datime with the corresponding date and time as a datime/6
record.
delete_file(+FileName,+Options)
FileName is the name of an existing file or directory.
Options is a list of options. Possible options are
directory
, recursive
or ignore
. If FileName
is not a directory it is deleted; otherwise, if the option
directory
is specified but not recursive
, the directory
will be deleted if it is empty. If recursive
is specified and
FileName is a directory, the directory and all its subdirectories
and files will be deleted. If the operation fails, an exception is
raised unless the ignore
option is specified.
delete_file(+FileName)
Equivalent to delete_file(FileName,[recursive])
.
directory_files(+Directory,-FileList)
FileList is the list of entries (files, directories, etc.) in
Directory.
make_directory(+DirectoryName)
Makes a new directory.
environ(?Var, ?Value)
Var is the name of an environment variable, and Value is
its value. Both are atoms. Can be used to enumerate all current
environment variables.
exec(+Command, [+Stdin,+Stdout,+Stderr], -Pid)
Passes Command to a new default shell process for execution. The standard I/O streams of the new process are connected according to what is specified by the terms +Stdin, +Stdout, and +Stderr respectively. Possible values are:
null
/dev/null
or equivalent.
std
pipe/1
must be used and the program must
explicitly read the pipe and write to the console. Similarly for the
input to the subprocess.
pipe(-Stream)
close/1
; it is not closed automatically when the process dies.
Pid is the process identifier of the new process.
On UNIX, the subprocess will be detached provided none of its standard
streams is specified as std
. This means it will not receive an
interruption signal as a result of ^C being typed.
file_exists(+FileName)
file_exists(+FileName, +Permissions)
[read,write,search,exists]
.
file_property(+FileName, ?Property)
type(Type)
regular
, directory
, fifo
,
symlink
, socket
or unknown
.
size(Size)
mod_time(ModTime)
library(system)
(see System Utilities)
provides operations on such timestamps.
If Property is uninstantiated, the predicate will enumerate the
properties on backtracking.
host_id(-HID)
host_name(-HostName)
pid(-PID)
kill(+Pid, +Signal)
Sends the signal Signal to process Pid.
mktemp(+Template, -FileName)
Interface to the UNIX function mktemp(3). A unique file name is created
and unified with FileName. Template should contain a file
name with six trailing Xs. The unique file name is that template with
the six Xs replaced by a character string.
popen(+Command, +Mode, ?Stream)
Interface to the UNIX function popen(3)
. Passes Command to
a new default shell process for execution. Mode may be either
read
or write
. In the former case the output from the
process is piped to Stream. In the latter case the input to the
process is piped from Stream. Stream may be read/written
using the ordinary StreamIO predicates. It must be closed using
close/1
; it is not closed automatically when the process dies.
rename_file(+OldName, +NewName)
OldName is the name of an existing file or directory, which will be
renamed to NewName. If the operation fails, an exception is raised.
shell
Starts a new interactive shell named by the environment variable
SHELL
. The control is returned to Prolog upon termination of the
shell process.
shell(+Command)
Passes Command to a new shell named by the environment variable
SHELL
for execution.
Succeeds if the C library function system()
returns 0.
On MSDOS, Windows or OS/2, if SHELL
is defined it is expected to
name a UNIX like shell which will be invoked with the argument -c
Command
. If SHELL
is undefined, the shell named by
COMSPEC
will be invoked with the argument /C
Command
.
shell(+Command, -Status)
Passes Command to a new shell named by the environment variable
SHELL
for execution.
Status is unified with the value returned by the C library
function system()
.
See also shell/1
above.
sleep(+Seconds)
Puts the SICStus Prolog process asleep for Second seconds, where
Seconds may be an integer or a float. On UNIX, the usleep
function will be used if Seconds is less than one, and sleep
otherwise. On MSDOS, Windows or OS/2, the Sleep
function will be used.
system
Starts a new interactive default shell process. The control is returned to
Prolog upon termination of the shell process.
system(+Command)
Passes Command to a new default shell process for execution. Succeeds if
the C library function system()
returns 0.
system(+Command, -Status)
Passes Command to a new default shell process for execution.
Status is unified with the value returned by the C library
function system()
.
tmpnam(-FileName)
Interface to the ANSI C function tmpnam(3). A unique file name is
created and unified with FileName.
wait(+Pid, -Status)
Waits for the child process Pid to terminate. The exit status is
returned in Status. The function is similar to that of the UNIX
function waitpid(3)
.
working_directory(?OldDirectory, ?NewDirectory)
working_directory(Dir,Dir)
unifies Dir with the
current working directory without changing anything.