Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Pomógł: pekfos
Język C++

system

[funkcja] Wywołuje polecenie systemowe.

Składnia

C/C++
#include <cstdlib>

int system( const char * command );

Opis szczegółowy

Funkcja wywołuje polecenie systemowe przekazane jako argument. Praca programu zostaje wstrzymana aż do wykonania polecenia. Po zakończeniu wykonywania polecenia system operacyjny oddaje kontrolę programowi, zwracając liczbę całkowitą, która informuje czy wywołanie polecenia się powiodło.

Funkcja może być użyta z argumentem NULL by sprawdzić czy interpreter poleceń istnieje.

Argumenty

command
 - polecenie systemowe, jakie ma zostać wykonane.

Zwracana wartość

Gdy
command
 jest NULL i interpreter poleceń zostanie znaleziony, funkcja zwraca wartość różną od zera. W przeciwnym wypadku funkcja zwraca wartość 0 i ustawia errno na ENOENT.

Gdy
command
 jest różna od NULL funkcja zwraca wartość, która jest zależna od wartości, jaka zostanie zwrócona przez interpreter poleceń. Funkcja zwraca wartość 0 tylko wtedy gdy interpreter poleceń zwrócił również wartość 0. W przeciwnym wypadku funkcja zwraca wartość -1, która informuje o wystąpieniu błędu oraz ustawia errno na jedną z następujących wartości:
E2BIGLista argumentów jest zbyt długa.
ENOENTInterpreter poleceń nie został znaleziony.
ENOEXECPlik interpretera poleceń posiada niepoprawny format i nie jest plikiem wykonywalnym.
ENOMEMMożliwe przyczyny:
- nie ma wystarczającej ilości pamięci do wykonania polecenia;
- dostępna pamięć jest uszkodzona;
- istnieje uszkodzony blok pamięci, który spowodował, że nie udało się poprawnie zaalokować pamięci.

Przykład

C/C++
#include <cstdio>
#include <cstdlib>

int main()
{
    printf( "Interpreter polecen:" );
    if( system( NULL ) )
         puts( "OK\n" );
    else
         exit( 1 );
   
    printf( "Wywoływanie polecenia dir: \n" );
    int iResult = system( "dir" );
    printf( "Funkcja zwrocila wartosc: %d.\n", iResult );
    return 0;
}

Linki zewnętrzne