system()

Updated: May 06, 2022

Execute a system command

Synopsis:

#include <stdlib.h>

int system( const char *command );

Arguments:

command
NULL, or the system command that you want to execute; see below.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The behavior of the system() function depends on the value of its command argument:

Note: The shell used is always sh, regardless of the setting of the SHELL environment variable, because applications may rely on features of the standard shell, and may fail as a result of running a different shell.

This means that any command that can be entered to the OS can be executed, including programs, QNX Neutrino commands, and shell scripts. The exec*() and spawn*() functions can only cause programs to be executed.

Returns:

For information about macros that extract information from the value returned by system(), see Status macros in the description of wait().

When an error has occurred, errno contains a value that indicates the type of error that has been detected. In particular, see the error codes for spawn().

Examples:

#include <stdlib.h>
#include <stdio.h>
#include <sys/wait.h>

int main( void )
  {
    int rc;

    rc = system( "ls" );
    if( rc == -1 ) {
      printf( "shell could not be run\n" );
    } else {
      printf( "result of running command is %d\n",
          WEXITSTATUS( rc ) );
    }
    return EXIT_SUCCESS;
  }

Classification:

ANSI, POSIX 1003.1

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler No
Thread Yes