Description: Documentation

## variable errno

### Synopsis

Error code set by system functions.

### Usage

Integer_Type errno

### Description

A system function can fail for a variety of reasons. For example, a file operation may fail because lack of disk space, or the process does not have permission to perform the operation. Such functions will return -1 and set the variable errno to an error code describing the reason for failure. Particular values of errno may be specified by the following symbolic constants (read-only variables) and the corresponding errno_string value:

         EPERM            "Not owner"
         ENOENT           "No such file or directory"
         ESRCH            "No such process"
         ENXIO            "No such device or address"
         ENOEXEC          "Exec format error"
         EBADF            "Bad file number"
         ECHILD           "No children"
         ENOMEM           "Not enough core"
         EACCES           "Permission denied"
         EFAULT           "Bad address"
         ENOTBLK          "Block device required"
         EBUSY            "Mount device busy"
         EEXIST           "File exists"
         EXDEV            "Cross-device link"
         ENODEV           "No such device"
         ENOTDIR          "Not a directory"
         EISDIR           "Is a directory"
         EINVAL           "Invalid argument"
         ENFILE           "File table overflow"
         EMFILE           "Too many open files"
         ENOTTY           "Not a typewriter"
         ETXTBSY          "Text file busy"
         EFBIG            "File too large"
         ENOSPC           "No space left on device"
         ESPIPE           "Illegal seek"
         EROFS            "Read-only file system"
         EMLINK           "Too many links"
         EPIPE            "Broken pipe"
         ELOOP            "Too many levels of symbolic links"
         ENAMETOOLONG     "File name too long"

### Example

The mkdir function will attempt to create a directory. If that directory already exists, the function will fail and set errno to EEXIST .

        define create_dir (dir)
        {
           if (0 == mkdir (dir)) return;
           if (errno != EEXIST)
             error ("mkdir %s failied: %s", dir, errno_string);
        }

### See also

errno_string , error , mkdir

## function errno_string

### Synopsis

Return a string describing an errno.

### Usage

String_Type errno_string (Integer_Type err)

### Description

The errno_string function returns a string describing the integer error code err . The variable err usually corresponds to the errno intrinsic function. See the description for errno for more information.

### Example

The errno_string function may be used as follows:

        define sizeof_file (file)
        {
           variable st = stat (file);
           if (st == NULL)
             verror ("%s: %s", file, errno_string (errno);
           return st.st_size;
        }

### See also

errno , stat, verror

## function getegid

### Synopsis

Get the effective group id

### Usage

Int_Type getegid ()

### Description

The getegid function returns the effective group ID of the current process.

### Notes

This function is not supported by all systems.

### See also

getgid , geteuid , setgid

## function geteuid

### Synopsis

Get the effective user-id of the current process

### Usage

Int_Type geteuid ()

### Description

The geteuid function returns the effective user-id of the current process.

### Notes

This function is not supported by all systems.

### See also

getuid , setuid , setgid

## function getgid

### Synopsis

Get the group id

### Usage

Integer_Type getgid ()

### Description

The getgid function returns the real group id of the current process.

### Notes

This function is not supported by all systems.

### See also

getpid , getpid(1) , getppid

## function getpid

### Synopsis

Get the current process id

### Usage

Integer_Type getpid ()

### Description

The getpid function returns the current process identification number.

### See also

getppid , getgid

## function getppid

### Synopsis

Get the parent process id

### Usage

Integer_Type getppid ()

### Description

The getpid , getpid(1) function returns the process identification number of the parent process.

### Notes

This function is not supported by all systems.

### See also

getpid , getpid(1) , getgid

## function getuid

### Synopsis

Get the user-id of the current process

### Usage

Int_Type getuid ()

### Description

The getuid function returns the user-id of the current process.

### Notes

This function is not supported by all systems.

### See also

getuid, getegid

## function kill

### Synopsis

Send a signal to a process

### Usage

Integer_Type kill (Integer_Type pid, Integer_Type sig)

### Description

This function may be used to send a signal given by the integer sig to the process specified by pid . The function returns zero upon sucess and -1 upon failure setting errno accordingly.

### Example

The kill function may be used to determine whether or not a specific process exists:

        define process_exists (pid)
        {
           if (-1 == kill (pid, 0))
             return 0;     % Process does not exist
           return 1;
        }

### Notes

This function is not supported by all systems.

### See also

getpid , getpid(1)

## function mkfifo

### Synopsis

Create a named pipe

### Usage

Int_Type mkfifo (String_Type name, Int_Type mode)

### Description

The mkfifo attempts to create a named pipe with the specified name and mode (modified by the process's umask). The function returns 0 upon success, or \-1 and sets errno upon failure.

### Notes

Not all systems support the mkfifo function and even on systems that do implement the mkfifo system call, the underlying file system may not support the concept of a named pipe, e.g, an NFS filesystem.

### See also

stat_file

## function setgid

### Synopsis

Set the group-id of the current process

### Usage

Int_Type setgid (Int_Type gid)

### Description

The setgid function sets the effective group-id of the current process. It returns zero upon success, or \-1 upon error and sets errno appropriately.

### Notes

This function is not supported by all systems.

### See also

getgid , setuid

## function setpgid

### Synopsis

Set the process group-id

### Usage

Int_Type setpgid (Int_Type pid, Int_Type gid)

### Description

The setpgid function sets the group-id gid of the process whose process-id is pid . If pid is 0, then the current process-id will be used. If pgid is 0, then the pid of the affected process will be used. If successful zero will be returned, otherwise the function will return \-1 and set errno accordingly.

### Notes

This function is not supported by all systems.

### See also

setgid , setuid

## function setuid

### Synopsis

Set the user-id of the current process

### Usage

Int_Type setuid (Int_Type id)

### Description

The setuid function sets the effective user-id of the current process. It returns zero upon success, or \-1 upon error and sets errno appropriately.

### Notes

This function is not supported by all systems.

### See also

setgid , setpgid , getuid , geteuid

## function sleep

### Synopsis

Pause for a specified number of seconds

### Usage

sleep (UInt_Type n)

### Description

The sleep function delays the current process for the specified number of seconds. If it is interrupted by a signal, it will return prematurely.

## function system

### Synopsis

Execute a shell command

### Usage

Integer_Type system (String_Type cmd)

### Description

The system function may be used to execute the string expression cmd in an inferior shell. This function is an interface to the C system function which returns an implementation-defined result. On Linux, it returns 127 if the inferior shell could not be invoked, -1 if there was some other error, otherwise it returns the return code for cmd .

### Example

        define dir ()
        {
           () = system ("DIR");
        }

displays a directory listing of the current directory under MSDOS or VMS.

### See also

popen , listdir

## function umask

### Synopsis

Set the file creation mask

### Usage

Int_Type umask (Int_Type m)

### Description

The umask function sets the file creation mask to m and returns the previous mask.

### See also

stat_file

## function uname

### Synopsis

Get the system name

### Usage

Struct_Tye uname ()

### Description

The uname function returns a structure containing information about the operating system. The structure contains the following fields:

           sysname  (Name of the operating system)
           nodename (Name of the node within the network)
           release  (Release level of the OS)
           version  (Current version of the release)
           machine  (Name of the hardware)

### Notes

Not all systems support this function.

### See also

getenv , pack , unpack