Wykonanie komendy systemu – konstrukcja programistyczna zdefiniowana w określonym języku programowania umożliwiająca w kodzie źródłowym definiowanego algorytmu, wywołanie komendy systemu operacyjnego lub innego, wcześniej skompilowanego programu.

Stosowane rozwiązania Wywołanie komendy systemu operacyjnego lub innego programu dostępnego w systemie komputerowym, w kodzie źródłowym może być realizowane w różnych językach programowania lub ich implementacjach, za pomocą różnych, dostępnych w danym języku konstrukcji, takich jak: instrukcja podprogram inne, specyficzne dla danego języka lub systemu.

Instrukcja Instrukcja realizująca wywołanie w kodzie źródłowym komendy systemu lub innego programu, jest definiowana w językach programowania jako instrukcja prosta. Przykładem jest instrukcja rozkazu RUN w języku Clipper, która ma postać <RUN | !*> <polecenie | wyrażenie_znakowe> przy czym: polecenie obejmuje zarówno komendy systemu operacyjnego wraz z ewentualnymi argumentami ich wywołania jak i wywołanie programu, z podaniem ewentualnie ścieżki dostępu do programu i argumentów wywołania wyrażenie_znakowe jest wyrażeniem typu łańcuchowego, zawierającego zapis jak wyżej wywołania komendy lub programu.

Podprogram Podprogramy realizujące rozpatrywaną operację są najczęściej udostępniane w systemach programowania jako podprogramy standardowe: biblioteczne lub wbudowane. Wywołanie takiego podprogramu jest identyczne z wywołaniem innych podprogramów, a argumenty takiego wywołania specyfikują, w postaci wyrażenia łańcuchowego, komendę systemu lub program do wykonania.

Przykładowo w systemie programowania Turbo Pascal konstrukcja taka zaimplementowana została jako procedura podstawowego modułu System, dostępnego w każdym programie, bez deklaracji (w tym pakiecie programistycznym). Wywołanie procedury ma postać: Exec(ścieżka, argumenty); przy czym: ścieżka to nazwa komendy lub podprogramu z ewentualnie wyspecyfikowaną ścieżką dostępu do pliku programu argumenty to argumenty wywołania komendy lub programu (jeżeli występują). Oba ww. parametry są typu łańcuchowego. Wraz z powyższą procedurą zdefiniowano w tym module także funkcję udostępniającą kod zakończenia uruchomionego programu o nazwie DosExitCode.

W systemie Turbo Prolog, do tego samego celu służy specjalny predykat wbudowany o postaci: system(PolecenieDos) w którym Polecenie Dos ma postać literału łańcuchowego z komendą lub programem do wykonania system("") łańcuch pusty w wywołaniu oznacza przejście do systemu, do powłoki tekstowej DOS, powrót do programu następuje poleceniem exit.

W języku VBA zdefiniowana jest funkcja wbudowana Shell. Nagłówek tej funkcji ma postać: Function Shell(P As String, I As Integer) As Double gdzie: P – nazwa wywoływanej aplikacji I – sposób wyświetlania aplikacji rezultat (typu Double) – identyfikator zadania (może być użyty w dalszej części kodu, np. do aktywacji uruchomionego zadania, i inne).

Sam system Windows oferuje w ramach biblioteki Windows API, funkcję ShellExecute, która może być użyta do uruchomienia z kodu źródłowego innego zadania, praktycznie w każdym systemie programowania przeznaczonym dla Windows.

Ograniczenia Do najważniejszych ograniczeń w stosowaniu powyższej konstrukcji, szczególnie w starszych systemach komputerowych, należy niewątpliwie ograniczenie w ilości dostępnej pamięci, w której musi być dość zasobów dla programy wywołującego, monitora systemu i programu wywoływanego. Mogą też powstawać problemy co do ilości otwartych plików, w przypadku istotnych ograniczeń zawartych również w starszych systemach.

Komunikacja pomiędzy programem wywoływanym a wywołującym, również jest w starszych systemach ograniczona do kodu zakończenia i/lub plików pośredniczących w wymianie danych. W nowych systemach wielozadaniowych, okienkowych, działają już zupełnie inne mechanizmy.

Bibliografia Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika Mikrokomputerów, , ISSN 0867-6011 Janusz Szajna, Marian Adamski, Tomasz Kozłowski, Turbo Prolog. Programowanie w języku logiki., Wydawnictwa Naukowo-Techniczne, Warszawa 1991, Seria: Mikrokomputery. Wojciech Rogowski, Arkadiusz Serodziński, Clipper 5.0, Wydawnictwo PLJ, Warszawa 1991, John Walkenbach, Excel 2003 PL. Programowanie w VBA., HELION 2004 r.,

Zobacz też Podprogram Program komputerowy System operacyjny

Kategoria:Konstrukcje programistyczne