Funkcje systemu Unix

Podobne dokumenty
4.2 Sposób korzystania z l acza

Informatyka 1. Przetwarzanie tekstów

Informatyka I. Wyk lad I. Wprowadzenie. Robert Muszyński Instytut Cybernetyki Technicznej Politechnika Wroc lawska

Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Uruchamianie SNNS. Po uruchomieniu. xgui & lub snns & pojawia si e okno. programu. Symulator sztucznych sieci neuronowych SNNS 1

Narzędzia informatyczne w językoznawstwie

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

ep Podstawy j Wst ezyka Tcl zaawansowany GUI-Tk Zastosowania Tcl/Tk Ireneusz So lczyk 26 kwietnia 2006

Paradygmaty programowania

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Powłoka interpreter poleceń systemu UNIX

Powłoka bash. Kurs systemu Unix 1

Paradygmaty programowania. Paradygmaty programowania

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

Systemy Operacyjne - Operacje na plikach

Rozdzia l 3. Laboratorium 3. danych zawierajac

Programowanie w języku Python. Grażyna Koba

Programowanie obiektowe

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Programowanie w Turbo Pascal

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Zmienne środowiskowe: Ścieżka przeszukiwana komendą.

Powłoka (shell) Powłoka ksh

PowerShell. Sławomir Wawrzyniak

Podstawy Programowania 2

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Wstęp do programowania 2

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

2 Przygotował: mgr inż. Maciej Lasota

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Informatyka 1. Procedury i funkcje, struktura programu w Pascalu

Wyk lad 2 Podgrupa grupy

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

pami eć operacyjna przechowuje dane do przetworzenia, tymczasowe dane pomocnicze,

Functionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Wskaźniki, funkcje i tablice

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

JAVA?? to proste!! Autor: wojtekb111111

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Zaawansowane programowanie w C++

lekcja 8a Gry komputerowe MasterMind

Operacje wejścia/wyjścia odsłona pierwsza

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Spis treści. 1 Java T M

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

Wprowadzenie do programowania współbieżnego

Informatyka I. Wyk lad II Algorytm, podstawowe notacje, typy danych i wyrażenia

Programowanie strukturalne

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

Wyk lad 7 Baza i wymiar przestrzeni liniowej

KOLOKWIUM PODSTAWY PROGRAMOWANIA

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

WEJŚCIE/WYJŚCIE HASKELL ŁUKASZ PAWLAK DARIUSZ KRYSIAK

Konsola i interpreter poleceń

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Drzewa podstawowe poj

Referencje do zmiennych i obiektów

Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash

Język programowania PASCAL

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Algorytmy i struktury danych

Pascal - wprowadzenie

Działanie systemu operacyjnego

sposób wykonywania operacji zapisu i odczytu dane odczytywane z l acza usuwane (nie można ich odczytać ponownie),

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Działanie systemu operacyjnego

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Wykład PASCAL - Pliki tekstowe

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

61 Topologie wirtualne

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Wirtualne sieci prywatne

Jerzy Nawrocki, Wprowadzenie do informatyki

1 Wprowadzenie do algorytmiki

Kolejki FIFO (łącza nazwane)

Paradygmaty programowania. Paradygmaty programowania

1 Przygotował: mgr inż. Maciej Lasota

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

Podstawy programowania 2. Temat: Wprowadzenie do wskaźników. Przygotował: mgr inż. Tomasz Michno

Programowanie - wykład 4

Laboratorium Systemów Operacyjnych Komputerów Tryb linii komend i programowanie wsadowe w systemach DOS/Windows

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Programowanie komputerowe. Zajęcia 1

Wiersz poleceń Windows

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Transkrypt:

Funkcje systemu Unix Witold Paluszyński witold@ict.pwr.wroc.pl http://sequoia.ict.pwr.wroc.pl/ witold/ Copyright c 2002 2005 Witold Paluszyński All rights reserved. Niniejszy dokument zawiera materia ly do wyk ladu na temat wykorzystania funkcji systemu Unix w Pascalu. Jest on udostepniony pod warunkiem wykorzystania wy l acznie do w lasnych, prywatnych potrzeb i może być kopiowany wy l acznie w ca lości, razem z niniejsza strona tytu lowa.

Przekazywanie argumentów do programu Program wykonujacy sie w systemie Unix nazywa sie procesem i posiada pewne środowisko, na które sk ladaja sie argumenty wywo lania programu i zmienne środowiskowe. Tworzenie podprocesów (jednych procesów przez inne) jest podstawowym mechanizmem pracy i programowania Unixa. Zestaw (wektor) argumentów wywo lania procesu stanowi kompletna linijka polecenia wpisanego w interpreterze komend, w l acznie z nazwa lub ścieżka do programu, która jest argumentem numer 0. Podzia l linijki polecenia na argumenty dokonuje interpreter komend. Gdy proces uruchamiany jest programowo, bez udzia lu interpretera komend, to wektor argumentów wywo lania określa wywo lanie tworzace proces. Argumenty wywo lania traktowane sa jako napisy znakowe, choć moga zawierać np. liczby. Zmienne środowiskowe sa symbolami z przypisanymi im wartościami napisami znakowymi. Tworzone sa dla danego procesu poleceniami interpretera komend (w programie: funkcja setenv). Przy tworzeniu podprocesu ca ly zestaw zmiennych środowiskowych jest dziedziczony, czyli kopiowany. Pozwala to przekazywać informacje do programu na przyk lad z interpretera komend, który go uruchomi l, ale nie w druga strone. Funkcje systemowe Unixa 1

Sun Pascal: argumenty wywo lania i zmienne środowiskowe PROGRAM sunargs(output); VAR x: INTEGER; a: String; WRITELN(argc:1, argumentow wywolania (argc): ); FOR x := 0 TO argc-1 DO argv(x,a); WRITELN( argv(,x:1, ) = ",a, " ); END; getenv( PATH,a); WRITELN( PATH =,a); Funkcje systemowe Unixa 2

HP Pascal: argumenty wywo lania i zmienne środowiskowe PROGRAM hpargs(output); IMPORT arg; TYPE String80 = String[80]; VAR x: INTEGER; a: String80; FUNCTION getenv(v: String80): String80; EXTERNAL C; WRITELN(argc:1, argumentow wywolania (argc): ); FOR x := 0 TO argc-1 DO a := argn(x); WRITELN( argn(,x:1, ) = ", a, " ); END; a := getenv( PATH ); WRITELN( PATH =,a); Funkcje systemowe Unixa 3

GNU Pascal: argumenty wywo lania i zmienne środowiskowe PROGRAM gpcargs(output); {$X+} VAR x: INTEGER; a: CString; FUNCTION getenv(v: CString): CString; asmname getenv ; WRITELN(paramcount:1, argumentow wywolania (paramcount): ); FOR x := 0 TO paramcount DO a := paramstr(x); WRITELN( paramstr(,x:1, ) = ", a, " ); END; a := getenv( PATH ); WRITELN( PATH =,a); Funkcje systemowe Unixa 4

Uruchamianie podprocesów procedura SYSTEM Procedura SYSTEM o nastepuj acym nag lówku powoduje utworzenie podprocesu, i wykonanie w nim polecenia systemu operacyjnego podanego jako argument command. Polecenie to może mieć dowolna postać polecenia interpretera komend systemu Unix, a wiec może zawierać odwo lania do zmiennych interpretera poleceń, mechanizm skierowania strumieni wejścia/wyjścia, znak & powodujacy uruchomienie polecenia w tle, spójniki logiczne interpretera poleceń, potoki poleceń, itd. PROCEDURE SYSTEM(command : String); EXTERN; Procedura system tworzy podproces interpretera poleceń, który wykonuje dane polecenie. Jeśli poleceniem jest wywo lanie programu, to tworzony jest kolejny proces, bed acy z kolei podprocesem interpretera poleceń, wykonujacy dany program. Program ten ma dostep do terminala użytkownika, może wyświetlać teksty na ekranie i czytać dane z klawiatury. W tym czasie proces pierwotny, zawierajacy wywo lanie procedury SYSTEM, jest zawieszony, i czeka na zakończenie procesu interpretera poleceń. Funkcje systemowe Unixa 5

PRZYK LAD nastepuj ace wywo lanie procedury SYSTEM, daje taki sam efekt, jak wywo lanie polecenia "ps -fu $LOGNAME" na terminalu użytkownika (zmienna środowiskowa $LOGNAME zawiera nazwe login użytkownika systemu): PROGRAM PRZYKLAD_PS1(INPUT,OUTPUT); SYSTEM( ps -fu $LOGNAME ); proces nadrz edny podproces podproces PROGRAM PRZYKLAD PS... sh/csh/bash ps SYSTEM( ps -fu $LOG... W tym przyk ladzie wszystkie procesy maja dostep do strumieni INPUT i OUTPUT, ale w danym momencie wykonywany jest tylko jeden proces, a pozosta le sa zamrożone. Funkcje systemowe Unixa 6

Uruchamianie podprocesów funkcja POPEN Funkcja POPEN umożliwia utworzenie poprocesu wykonujacego zadane polecenie za pośrednictwem interpretera poleceń, podobnie jak procedura SYSTEM. Jednak funkcja POPEN kończy prace od razu po utworzeniu podprocesu, który zostaje uruchomiony równolegle z procesem pierwotnym, i oba te procesy moga komunikować sie przez potok (jednokierunkowy strumień danych). FUNCTION POPEN(command, mode : String): CHANNEL; EXTERN; Drugi argument mode ma wartość r lub w i określa, czy potok ma być skierowany do procesu macierzystego, czy od niego. Potok zostaje przez funkcje popen przypisany do standardowego wyjścia utworzonego procesu (mode= r ) lub do jego standardowego wejścia (mode= w ). Wartość funkcji POPEN jest specjalnego typu CHANNEL. Zmienna tego typu określa otwarte l acze komunikacyjne, przez który można przesy lać dane specjalnie zdefiniowanymi procedurami. Funkcje systemowe Unixa 7

PRZYK LAD dane wyświetlane przez program ps na jego standardowym wyjściu sa czytane przez program z potoku i wyświetlane na jego wyjściu. Wszystkie procesy maja równoczesny dostep do klawiatury, jednak nie moga równocześnie z niej czytać, bo wynik by lby trudny do przewidzenia. PROGRAM PRZYKLAD_PS2(INPUT,OUTPUT); VAR pot: CHANNEL; buf: String; pot := POPEN( ps -fu $LOGNAME, r ); WHILE NOT PEOF(pot) PREADS(pot, buf); WRITELN(buf); END; podproces podproces proces nadrz edny ps sh/csh/bash PROGRAM PRZYKLAD PS... potok... pot:=popen( ps -fu...... Funkcje systemowe Unixa 8

Wywo lanie POPEN(..., r ); ma sens jeśli program wywo lany przez te funkcje pisze coś na swoim wyjściu, co nasz pierwotny program chcia lby czytać, a raczej nic nie czyta z klawiatury, chyba że program pierwotny sam nic nie czyta z klawiatury, i dzieki temu w taki albo inny sposób nie ma możliwości wystapienia kolizji przy czytaniu z klawiatury. Drugie możliwe wywo lanie funkcji POPEN(..., w ); ma sens w sytuacji dualnej, a wiec wtedy, gdy tworzony proces czyta dane ze swojego wejścia. Te dane bedzie mu dostarcza l program macierzysty przez potok. W tej sytuacji wszystkie procesy bed a mia ly równoczesny dostep do ekranu użytkownika, i jeśli chcia lyby jednocześnie pisać na swoim wyjściu to dane te pojawia sie na ekranie wymieszane w trudny do przewidzenia sposób. Jeżeli jeden z komunikujacych sie procesów dzia la szybciej, i wysy la dane do potoku zanim drugi proces bedzie gotów do ich odczytywania, albo jeśli spróbuje czytać dane z potoku zanim drugi proces cokolwiek do potoku zapisze, to operacja ta wykona sie mimo wszystko poprawnie. Szybszy proces zostanie wstrzymany przez system (przestawiony w tzw. stan uśpienia), i wznowiony gdy potok bedzie gotów do realizacji żadanej operacji wejścia/wyjścia. Taka synchronizacja pracy przez operacje I/O odbywa sie automatycznie i w sposób niewidzialny dla procesów. Funkcje systemowe Unixa 9

PRZYK LAD proces pierwotny uruchamia w podprocesie program mail do wys lania poczty, po czym czyta treść listu z klawiatury i przekazuje ja do podprocesu. W chwili zamkniecia potoku nastapi wys lanie poczty. PROGRAM PRZYKLAD_MAIL(INPUT,OUTPUT); VAR pot: CHANNEL; buf: String; pot := POPEN( mail adresat@o2.pl, w ); WHILE NOT EOF(INPUT) READLN(buf); PWRITESLN(pot, buf); END; PCLOSE(pot); podproces podproces proces nadrz edny mail sh/csh/bash PROGRAM PRZYKLAD MAIL potok... pot:=popen( mail, w... Funkcje systemowe Unixa 10