Loading...
Searching...
No Matches
Library Functions

## Functions

nothing | Qore::abort ()
| Aborts the current program (this function does not return)
string | Qore::basename (string path)
| Returns a string giving the last element of a file path (meant to be the filename)
nothing | Qore::basename ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
nothing | Qore::close_all_fd (*softbool strd)
| closes all possible file descriptors; useful in "daemon" processes that may have inherited open file descriptors
string | Qore::dirname (string path)
| Returns a string giving the path up to a file but not the filename itself.
nothing | Qore::dirname ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
int | Qore::errno ()
| Returns the error code of the last error that occurred in the current thread.
nothing | Qore::exec (string command)
| Replaces the current process image with another; this function does not return.
nothing | Qore::exit (softint rc=0)
| Exits the program with the return code passed (this function does not return)
int | Qore::fork ()
| Creates a copy of the current process with a new PID; returns 0 in the child process; returns the child's PID in the parent process.
list< hash< NetIfInfo > > | Qore::get_netif_list ()
| returns a list of network interfaces
list< hash< auto > > | Qore::getaddrinfo (*string node, *softstring service, softint family=AF_UNSPEC, softint flags=0)
| Returns a list of Address Information Hash for the given node name or string address; if no lookup can be performed then an exception is thrown.
int | Qore::getegid ()
| Returns the effective group ID of the current process.
int | Qore::geteuid ()
| Returns the effective user ID of the current process.
int | Qore::getgid ()
| Returns the real group ID of the current process.
list< int > | Qore::getgroups ()
| returns a list of group IDs that the user is a member of
*string | Qore::gethostbyaddr (string addr, softint type=AF_INET)
| Returns the official hostname corresponding to the network address passed as an argument.
nothing | Qore::gethostbyaddr ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
*hash< auto > | Qore::gethostbyaddr_long (string addr, softint type=AF_INET)
| Returns a hash representing all host and address information corresponding to the address and address type passed as arguments.
nothing | Qore::gethostbyaddr_long ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
*string | Qore::gethostbyname (string name)
| Returns the first address corresponding to the hostname passed as an argument or NOTHING if the lookup fails.
nothing | Qore::gethostbyname ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
*hash< auto > | Qore::gethostbyname_long (string name)
| Returns a hash representing all host and address information corresponding to the hostname passed as an argument.
nothing | Qore::gethostbyname_long ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
string | Qore::gethostname ()
| Returns the hostname of the system.
int | Qore::getpid ()
| Returns the PID (process ID) of the current process.
int | Qore::getppid ()
| Returns the PID (process ID) of the parent process of the current process.
int | Qore::getuid ()
| Returns the real user ID of the current process.
int | Qore::kill (softint pid, softint sig=SIGHUP)
| Sends a signal to a process, if no signal number is given, then Qore::SIGHUP is sent by default.
nothing | Qore::kill ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
int | Qore::qore_get_library_options ()
| returns all Qore library options
int | Qore::qore_set_library_options (int opts)
| sets Qore runtime library options
int | Qore::rand ()
| Returns a random non-negative 64-bit integer number.
int | Qore::setegid (softint gid)
| Changes the process effective group ID according to the argument passed.
int | Qore::seteuid (softint uid)
| Changes the effective process user ID according to the argument passed.
int | Qore::setgid (softint gid)
| Changes the process group ID according to the argument passed.
nothing | Qore::setgroups (softlist< softint > gids)
| sets the list of supplementary group IDs for the current process
int | Qore::setsid ()
| Creates a new session lead by the calling process.
int | Qore::setuid (softint uid)
| Changes the process user ID according to the argument passed.
int | Qore::sleep (softint seconds)
| Causes the current thread to sleep for a certain number of seconds.
nothing | Qore::sleep ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
nothing | Qore::srand (softint seed)
| Seeds the random number generator with the integer passed.
nothing | Qore::srand ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
string | Qore::strerror (softint err)
| Returns the string corresponding to the error code passed (generally retrieved with errno())
string | Qore::strerror ()
| Returns the string corresponding to the last error that occurred in the current thread.
int | Qore::system (string command)
| executes a command and returns the exit code of the process
nothing | Qore::system ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.
int | Qore::usleep (softint usecs)
| Causes the current thread to sleep for a certain number of microseconds.
int | Qore::usleep (date d)
| Causes the current thread to sleep for a certain number of microseconds.
nothing | Qore::usleep ()
| This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

## Detailed Description

Library functions

# Host Information Hash

Key | Type | Description
`name` | string | The official fully-qualified name of the host
`aliases` | list of string | Any hostname aliases for the host
`typename` | string | The type of network address (either `"ipv4"` or `"ipv6"`)
`type` | int | One of the Network Address Family Constants (either Qore::AF_INET or Qore::AF_INET6) corresponding to the type of network addresses given
`len` | int | The length of the addresses in bytes when represented in binary form
`addresses` | list of string | All addresses corresponding to the host; the list should have at least 1 element

# Address Information Hash

Key | Type | Description
`address` | string | A valid address of the host, for example: `"::1"`.
`address_desc` | string | A descriptive string of the address containing the address family, for example: `"ipv6[::1]"`
`family` | int | The network address family; see Network Address Family Constants.
`familystr` | string | A descriptive string for the network address family, for example: `"ipv6"`.
`addrlen` | int | The length of the internal network address data structure (not normally needed in Qore but provided anyway)
[`port`] | int | The port number corresponding to the service (if applicable)

## Function Documentation

## abort()

nothing Qore::abort | ( |  | ) |

Aborts the current program (this function does not return)

This function causes the current process to terminate abnormally; a core dump or crash report may be generated if enabled

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Example:
  abort();

See also
  exit()

## basename() [1/2]

nothing Qore::basename | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Code Flags:
  RUNTIME_NOOP

## basename() [2/2]

string Qore::basename | ( | string | path | ) |

Returns a string giving the last element of a file path (meant to be the filename)

Code Flags:
  CONSTANT

Parameters

  path | the path to process

Returns
  a string giving the last element of the given file path (meant to be the filename)

Example:
  string fn = basename("/usr/local/bin/file_name");

See also
  dirname()

## close_all_fd()

nothing Qore::close_all_fd | ( | *softbool | strd | ) |

closes all possible file descriptors; useful in "daemon" processes that may have inherited open file descriptors

Platform Availability:
  Qore::Option::HAVE_CLOSE_ALL_FD

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  strd | if True then also stdin, stdout, and stderr are closed, otherwise fds > 2 are closed

Example:
  close_all_fd();

Note
  if there are file descriptors open by Qore when this function is called, this function will also close those file descriptors; normally this function should only be used when starting a new process after a fork() and exec() to close any inherited descriptors, for example

## dirname() [1/2]

nothing Qore::dirname | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Code Flags:
  RUNTIME_NOOP

## dirname() [2/2]

string Qore::dirname | ( | string | path | ) |

Returns a string giving the path up to a file but not the filename itself.

Code Flags:
  CONSTANT

Parameters

  path | the path to process

Returns
  a string giving the path up to a file but not the filename itself; if no directory separator characters can be found in the path, `"."` is returned (meaning the current directory)

Example:
  string dir = dirname("/usr/local/bin/file_name");

See also
  basename()

## errno()

int Qore::errno | ( |  | ) |

Returns the error code of the last error that occurred in the current thread.

Returns
  the error code of the last error that occurred in the current thread (see Error Constants for possible error code values)

Example:
  if (unlink(path))
  printf("%s: %s\n", path, strerror(errno()));

See also
  strerror() for a function that gives the string description for the error number returned by this function

## exec()

nothing Qore::exec | ( | string | command | ) |

Replaces the current process image with another; this function does not return.

Restrictions:
  Qore::PO_NO_EXTERNAL_PROCESS, Qore::PO_NO_PROCESS_CONTROL

Parameters

  command | the executable to execute and any command-line arguments; the command is executed internally by a call to execvp() (3)

Example:
  exec("/usr/bin/xterm -bg black -fg white -sb -sl 2000");

## exit()

nothing Qore::exit | ( | softint | rc = `0` | ) |

Exits the program with the return code passed (this function does not return)

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  rc | the return code for the process (0 = no error; success)

Example:
  exit(0);

See also
  abort()

## fork()

int Qore::fork | ( |  | ) |

Creates a copy of the current process with a new PID; returns 0 in the child process; returns the child's PID in the parent process.

This function will throw an `ILLEGAL-FORK` exception if more than one thread is running

Platform Availability:
  Qore::Option::HAVE_FORK

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Returns
  0 in the child process; returns the child's PID in the parent process; if an error occurs, then -1 is returned, in this case no child process was started and the error number can be retrieved with the errno() function

Example:
  int pid;
  if (pid = fork())
  printf("child has PID %d\n", pid);

Exceptions

  ILLEGAL-FORK | Cannot fork if more than one thread is running

Note
  - after a fork(), the only safe call is exec(), many system calls are not async-signal safe, including pthread_create() which is used to start new threads.
  - the Qore process will crash if unsafe operations are called after a fork()
  - the signal-handling thread cannot be reliably started on many platforms (ex: FreeBSD) after a fork(), therefore signal handling is disabled in the child process after a fork()
  - on Darwin (OS/X) threading primitives are unusable in the child process after a fork()

## get_netif_list()

list< hash< NetIfInfo > > Qore::get_netif_list | ( |  | ) |

returns a list of network interfaces

Platform Availability:
  Qore::Option::HAVE_GET_NETIF_LIST

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Example:
  list<hash<NetIfInfo>> l = get_netif_list();
  results for example into:
  list: (8 elements)
  [0]=hash: (5 members)
  interface : "lo"
  address : "00:00:00:00:00:00"
  address_desc : "mac<00:00:00:00:00:00>"
  family : 17
  familystr : "mac"
  [1]=hash: (5 members)
  interface : "eth0"
  address : "44:8a:5b:ba:13:50"
  address_desc : "mac<44:8a:5b:ba:13:50>"
  family : 17
  familystr : "mac"
  [2]=hash: (5 members)
  interface : "lo"
  address : "127.0.0.1"
  address_desc : "ipv4(127.0.0.1)"
  family : 2
  familystr : "ipv4"
  [3]=hash: (5 members)
  interface : "eth0"
  address : "192.168.20.4"
  address_desc : "ipv4(192.168.20.4)"
  family : 2
  familystr : "ipv4"
  [4]=hash: (5 members)
  interface : "lo"
  address : "::1"
  address_desc : "ipv6[::1]"
  family : 10
  familystr : "ipv6"
  [5]=hash: (5 members)
  interface : "eth0"
  address : "fe80::213:3bff:fe0f:d5e1"
  address_desc : "ipv6[fe80::213:3bff:fe0f:d5e1]"
  family : 10
  familystr : "ipv6"

Returns
  returns a list of network interfaces available on the local machine

## getaddrinfo()

list< hash< auto > > Qore::getaddrinfo | ( | *string | node,
|  | *softstring | service,
|  | softint | family = `AF_UNSPEC`,
|  | softint | flags = `0`
| ) |  |

Returns a list of Address Information Hash for the given node name or string address; if no lookup can be performed then an exception is thrown.

Either node or service may be NOTHING but not both or a `QOREADDRINFO-GETINFO-ERROR` exception will be thrown

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Code Flags:
  RET_VALUE_ONLY

Parameters

  node | The host name or node name to look up
  service | The service name to look up to a port number
  family | The address family for the lookup, must be one of Qore::AF_INET, Qore::AF_INET6, or Qore::AF_UNSPEC, meaning to return all possible addresses
  flags | see Network Address Information Constants for possible values to be combined with binary or

Returns
  a list of Address Information Hash for the given node name or string address; if no lookup can be performed then an exception is thrown

Example:
  list<hash<auto>> l = getaddrinfo("localhost");

Exceptions

  QOREADDRINFO-GETINFO-ERROR | nodename nor servname provided, or not known

## getegid()

int Qore::getegid | ( |  | ) |

Returns the effective group ID of the current process.

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Returns
  the effective group ID of the current process

Example:
  int egid = getegid();

## geteuid()

int Qore::geteuid | ( |  | ) |

Returns the effective user ID of the current process.

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Returns
  the effective user ID of the current process

Example:
  int euid = geteuid();

## getgid()

int Qore::getgid | ( |  | ) |

Returns the real group ID of the current process.

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Returns
  the real group ID of the current process

Example:
  int gid = getgid();

## getgroups()

list< int > Qore::getgroups | ( |  | ) |

returns a list of group IDs that the user is a member of

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Example:
  list<int> l = getgroups();

Returns
  a list of group IDs that the user is a member of

Since
  Qore 0.8.11.1

## gethostbyaddr() [1/2]

nothing Qore::gethostbyaddr | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Code Flags:
  RUNTIME_NOOP

## gethostbyaddr() [2/2]

*string Qore::gethostbyaddr | ( | string | addr,
|  | softint | type = `AF_INET`
| ) |  |

Returns the official hostname corresponding to the network address passed as an argument.

If the address family is invalid or the address string is not a valid address for the given family a `GETHOSTBYADDR-ERROR` exception will be thrown.

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Code Flags:
  CONSTANT

Parameters

  addr | the address to look up
  type | the network address family; see Network Address Family Constants for valid values

Returns
  the official hostname corresponding to the network addressed passed as an argument

Example:
  *string hostname = gethostbyaddr("192.168.0.33");
  if (!exists hostname)
  printf("address lookup on 192.168.0.33 failed\n", host);

Exceptions

  GETHOSTBYADDR-ERROR | invalid address for the given family or invalid address family

See also
  gethostbyaddr_long() for a version of this function that returns all host information, including all hostname aliases and all addresses

## gethostbyaddr_long() [1/2]

nothing Qore::gethostbyaddr_long | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Code Flags:
  RUNTIME_NOOP

## gethostbyaddr_long() [2/2]

*hash< auto > Qore::gethostbyaddr_long | ( | string | addr,
|  | softint | type = `AF_INET`
| ) |  |

Returns a hash representing all host and address information corresponding to the address and address type passed as arguments.

If the address family is invalid or the address string is not a valid address for the given family a `GETHOSTBYADDR-ERROR` exception will be thrown.

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Code Flags:
  CONSTANT

Parameters

  addr | the address to look up
  type | the network address family; see Network Address Family Constants for valid values

Returns
  a hash representing all host and address information corresponding to the address and address type passed as arguments

Example:
  *hash<auto> ah = gethostbyaddr_long("192.168.0.33");
  if (!ah)
  printf("address lookup on 192.168.0.33 failed\n", host);

Exceptions

  GETHOSTBYADDR-ERROR | invalid address for the given family or invalid address family

See also
  gethostbyaddr() for a simpler version of this function that returns just a single hostname for the address

## gethostbyname() [1/2]

nothing Qore::gethostbyname | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Code Flags:
  RUNTIME_NOOP

## gethostbyname() [2/2]

*string Qore::gethostbyname | ( | string | name | ) |

Returns the first address corresponding to the hostname passed as an argument or NOTHING if the lookup fails.

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Code Flags:
  CONSTANT

Parameters

  name | the name to look up

Returns
  the first address corresponding to the hostname passed as an argument or NOTHING if the lookup fails

Example:
  *string addr = gethostbyname(host);
  if (!exists host)
  printf("address lookup on %y failed; hostname unknown\n", host);

See also
  gethostbyname_long() for a version of this function that returns all host information, including all hostname aliases and all addresses

## gethostbyname_long() [1/2]

nothing Qore::gethostbyname_long | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Code Flags:
  RUNTIME_NOOP

## gethostbyname_long() [2/2]

*hash< auto > Qore::gethostbyname_long | ( | string | name | ) |

Returns a hash representing all host and address information corresponding to the hostname passed as an argument.

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Code Flags:
  CONSTANT

Parameters

  name | the name to look up

Returns
  a hash representing all host and address information corresponding to the hostname passed as an argument

Example:
  *hash<auto> ah = gethostbyname_long(host);
  if (!ah)
  printf("address lookup on %y failed; hostname unknown\n", host);

See also
  gethostbyname() for a version of this function that returns just the first network address corresponding to the hostname

## gethostname()

string Qore::gethostname | ( |  | ) |

Returns the hostname of the system.

Returns
  the hostname of the system

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Code Flags:
  CONSTANT

Example:
  string host = gethostname();

## getpid()

int Qore::getpid | ( |  | ) |

Returns the PID (process ID) of the current process.

Returns
  the PID (process ID) of the current process

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Code Flags:
  RET_VALUE_ONLY

Example:
  int pid = getpid();

## getppid()

int Qore::getppid | ( |  | ) |

Returns the PID (process ID) of the parent process of the current process.

Platform Availability:
  Qore::Option::HAVE_GETPPID

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Code Flags:
  RET_VALUE_ONLY

Returns
  the PID (process ID) of the parent process of the current process

Example:
  int ppid = HAVE_GETPPID ? getppid() : -1;

## getuid()

int Qore::getuid | ( |  | ) |

Returns the real user ID of the current process.

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_EXTERNAL_INFO

Returns
  the real user ID of the current process

Example:
  int uid = getuid();

## kill() [1/2]

nothing Qore::kill | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Restrictions:
  Qore::PO_NO_EXTERNAL_PROCESS

Code Flags:
  RUNTIME_NOOP

## kill() [2/2]

int Qore::kill | ( | softint | pid,
|  | softint | sig = `SIGHUP`
| ) |  |

Sends a signal to a process, if no signal number is given, then Qore::SIGHUP is sent by default.

Platform Availability:
  Qore::Option::HAVE_KILL

Restrictions:
  Qore::PO_NO_EXTERNAL_PROCESS

Parameters

  pid

  the pid argument can have the following interpretations:
  - `> 0`: the signal is sent to the process ID given
  - `0`: the signal is sent to all processes whose group ID is equal to the process group ID of the sender, and for which the process has permission
  - `-1`: if the user has super-user privileges, the signal is sent to all processes excluding system processes and the process sending the signal. If the user is not the super user, the signal is sent to all processes with the same uid as the user, excluding the process sending the signal. No error is returned if any process could be signaled.

  sig | the signal number to send to the process or processes

Returns
  0 means success (no error), or -1 meaning an error occurred; in this case check errno() for the error

Example:
  if (kill(pid, SIGTERM))
  printf("error sending signal to pid %d: %s\n", pid, strerror());

## qore_get_library_options()

int Qore::qore_get_library_options | ( |  | ) |

returns all Qore library options

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Returns
  all Qore library options; see Qore Library Option Constants for more information

See also
  qore_set_library_options()

Since
  Qore 0.9.3.1

## qore_set_library_options()

int Qore::qore_set_library_options | ( | int | opts | ) |

sets Qore runtime library options

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  opts | the runtime options to set, binary-anded with Qore::QLO_RUNTIME_OPTS; see Qore Library Option Constants and QLO_RUNTIME_OPTS for more information

Returns
  the options used

See also
  qore_get_library_options()

Since
  Qore 0.9.3.1

## rand()

int Qore::rand | ( |  | ) |

Returns a random non-negative 64-bit integer number.

This function uses the C library function `random()` to generate the number if available on the current platform, otherwise uses `rand`().

Returns
  a random non-negative 64-bit integer number

Code Flags:
  CONSTANT

Example:
  int num = rand();

See also
  srand() for a function to seed the random number generator

Since
  Qore 0.8.13 the random number generator is seeded randomly when the Qore library is initialized

## setegid()

int Qore::setegid | ( | softint | gid | ) |

Changes the process effective group ID according to the argument passed.

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  gid | the group ID to set

Returns
  0 if no error occurred; -1 if an error occurred, in which case errno() and/or strerror() can be used to retrieve the error

Example:
  if (setegid(gid))
  printf("setegid %d: %s\n", gid, strerror());

## seteuid()

int Qore::seteuid | ( | softint | uid | ) |

Changes the effective process user ID according to the argument passed.

Platform Availability:
  Qore::Option::HAVE_SETEUID

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  uid | the user ID to set

Returns
  0 if no error occurred; -1 if an error occurred, in which case errno() and/or strerror() can be used to retrieve the error

Example:
  if (seteuid(uid))
  printf("seteuid %d: %s\n", uid, strerror());

## setgid()

int Qore::setgid | ( | softint | gid | ) |

Changes the process group ID according to the argument passed.

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  gid | the group ID to set

Returns
  0 if no error occurred; -1 if an error occurred, in which case errno() and/or strerror() can be used to retrieve the error

Example:
  if (setgid(gid))
  printf("setgid %d: %s\n", gid, strerror());

## setgroups()

nothing Qore::setgroups | ( | softlist< softint > | gids | ) |

sets the list of supplementary group IDs for the current process

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Example:
  setgroups(l);

Parameters

  gids | a list of supplementary group IDs for the current process

Since
  Qore 0.8.11.1

## setsid()

int Qore::setsid | ( |  | ) |

Creates a new session lead by the calling process.

The calling process is the session leader of the new session, is the process group leader of a new process group and has no controlling terminal. The calling process is the only process in either the session or the process group.

Returns
  Upon successful completion, the setsid() function returns the value of the process group ID of the new process group, which is the same as the process ID of the calling process; if an error occurs, setsid() returns -1 and errno() and/or strerror() can be used to check the error.

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Example:
  if (setsid() == -1)
  printf("setsid(): %s\n", strerror());

## setuid()

int Qore::setuid | ( | softint | uid | ) |

Changes the process user ID according to the argument passed.

Platform Availability:
  Qore::Option::HAVE_UNIX_USERMGT

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  uid | the user ID to set

Returns
  0 if no error occurred; -1 if an error occurred, in which case errno() and/or strerror() can be used to retrieve the error

Example:
  if (setuid(uid))
  printf("setuid %d: %s\n", uid, strerror());

## sleep() [1/2]

nothing Qore::sleep | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Code Flags:
  RUNTIME_NOOP

## sleep() [2/2]

int Qore::sleep | ( | softint | seconds | ) |

Causes the current thread to sleep for a certain number of seconds.

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  seconds | The amount of time in seconds to sleep; integer arguments are interpreted literally as a number of seconds to sleep, however a relative date/time value can be given instead of an integer to make the source more readable (ex: `5s`), however as this function only supports a resolution of 1 second, milliseconds and microseconds are ignored if passed in a relative date/time value

Returns
  should always return 0 for success

Example:
  sleep(10s);

See also
  usleep() for a similar function supporting microsecond resolution

## srand() [1/2]

nothing Qore::srand | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Code Flags:
  RUNTIME_NOOP

## srand() [2/2]

nothing Qore::srand | ( | softint | seed | ) |

Seeds the random number generator with the integer passed.

This function uses the C library function srandom() if available on the current platform, otherwise uses srand()

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  seed | the seed for the random number generator (only the least-significant 32-bits are used)

Example:
  srand(now());

See also
  rand() for a function that returns a random number related to the seed given here

Since
  Qore 0.8.13 the random number generator is seeded randomly when the Qore library is initialized

## strerror() [1/2]

string Qore::strerror | ( |  | ) |

Returns the string corresponding to the last error that occurred in the current thread.

Returns
  the string corresponding to the last error that occurred in the current thread

Code Flags:
  CONSTANT

Example:
  if (unlink(path))
  printf("%s: %s\n", path, strerror());

Since
  Qore 0.8.4 this variant of the function automatically uses the last error value for the current thread

## strerror() [2/2]

string Qore::strerror | ( | softint | err | ) |

Returns the string corresponding to the error code passed (generally retrieved with errno())

Code Flags:
  CONSTANT

Parameters

  err | the error code to retrieve the description for (generally provided by errno())

Returns
  the string corresponding to the error code passed; if the error code is unknown, then a string like `"Unknown error: -1"` is returned

Example:
  if (unlink(path))
  printf("%s: %s\n", path, strerror(errno()));

## system() [1/2]

nothing Qore::system | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Restrictions:
  Qore::PO_NO_EXTERNAL_PROCESS

Code Flags:
  RUNTIME_NOOP

## system() [2/2]

int Qore::system | ( | string | command | ) |

executes a command and returns the exit code of the process

Platform Availability:
  Qore::Option::HAVE_SYSTEM

Restrictions:
  Qore::PO_NO_EXTERNAL_PROCESS

Parameters

  command | the command to execute with system() (3)

Returns
  the exit code of the process executed

Example:
  int rc = system("ls -l");

See also
  - backquote()
  - the backquote operator

## usleep() [1/3]

nothing Qore::usleep | ( |  | ) |

This function variant does nothing at all; it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments.

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Code Flags:
  RUNTIME_NOOP

## usleep() [2/3]

int Qore::usleep | ( | date | d | ) |

Causes the current thread to sleep for a certain number of microseconds.

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  d | A time value giving the amount of time in microseconds to sleep; this should be a relative date/time value to make the source more readable (ex: `250ms`)

Returns
  should always return 0 for success

Example:
  usleep(250ms);

See also
  sleep() for a similar function supporting second resolution

Note
  both sleep() and usleep() are implemented internally by calls to nanosleep() (2) if available on the current platform, otherwise both are implemented by calls to usleep() (3)

## usleep() [3/3]

int Qore::usleep | ( | softint | usecs | ) |

Causes the current thread to sleep for a certain number of microseconds.

Restrictions:
  Qore::PO_NO_PROCESS_CONTROL

Parameters

  usecs | The amount of time in microseconds to sleep; integer arguments are interpreted literally as a number of microseconds to sleep

Returns
  should always return 0 for success

Example:
  usleep(5000);

See also
  sleep() for a similar function supporting second resolution

Note
  both sleep() and usleep() are implemented internally by calls to nanosleep() (2) if available on the current platform, otherwise both are implemented by calls to usleep() (3)