Systemy Operacyjne 1 Laboratorium 3 Potoki i łącza nazwane w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot
|
|
- Patryk Sadowski
- 7 lat temu
- Przeglądów:
Transkrypt
1 Systemy Operacyjne 1 Laboratorium 3 Potoki i łącza nazwane w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot 15 października 2016
2 Wstęp W tej instrukcji zawarte są informacje na temat jednych z podstawowych środków komunikacji między procesami, które dostępne są w systemie Linux. Pierwsza cześć przedstawia koncepcję przesyłania informacji z użyciem strumieni. W drugiej części zawarto opis użycia potoków. Trzecia część poświęcona jest łączom nazwanym, które znane są także jako kolejki fifo. Czwarta część zawiera opis funkcji związanych z obsługą wymienionych łącz. Instrukcja kończy się listą zadań do samodzielnego wykonania na laboratorium. 1. Komunikacja z wykorzystaniem strumieni W systemie Linux istnieje możliwość stworzenia przez proces nowego procesu realizującego wybrane polecenie powłoki oraz łącza komunikacyjnego, nazwanego strumieniem, które będzie łączyło go z procesem rodzicielskim. Umożliwia to funkcja popen(). Łącze utworzone przy jej pomocy jest jednokierunkowe, tzn. proces rodzicielski może je wyłącznie odczytywać lub wyłącznie zapisywać, nie może wykonywać obu tych czynności. Strumień, po zakończeniu korzystania z niego, należy zamykać za pomocą funkcji pclose(). Jest on powiązany ze standardowym wejściem lub wyjściem polecenia realizowanego w ramach procesu potomnego, a więc, w zależności od tego czy jest czytany, czy zapisywany, zastępuje klawiaturę lub ekran. 2. Łącza nienazwane - potoki Innym środkiem komunikacji jednokierunkowej jest łącze nienazwane, czyli inaczej potok (ang. pipe). Służy on do wymiany informacji między dwoma spokrewnionymi procesami, czyli np. między potomkiem i rodzicem, lub dwoma potomkami. Istnieje także mało praktyczna możliwość korzystania z potoku w obrębie jednego procesu. Potok tworzony jest przez system operacyjny na rzecz procesu użytkownika, który wywołuje funkcję pipe(). Dostęp do tego łącza proces użytkownika uzyskuje za pomocą funkcji umożliwiających niskopoziomowe operacje na plikach - read() i write(). Pojemność potoku jest ograniczona, a wielkość tego ograniczenia zależy od konfiguracji systemu. Dla utworzonego potoku można ustawić znacznik (flagę) O_NONBLOCK, który powoduje, że program nie będzie przechodził w stan oczekiwania w określonych sytuacjach, związanych z obsługą potoku (szczegóły w następnym punkcie). Listing 1 przedstawia program, który tworzy dwa procesy (rodzic i potomek), które komunikują się ze sobą przy pomocy potoku. Procesem nadającym informacje, jest potomek, a odbierającym - rodzic. 1
3 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<unistd.h> 4 #include<string.h> 5 #include<sys/types.h> 6 #include<sys/wait.h> 7 8 enum names_of_pipe_descriptors {READ, WRITE}; void do_parent_work(int descriptors[]) 12 { 13 char message[100] = ""; 14 if(close(descriptors[write])<0) 15 perror("parent - close write"); 16 if(read(descriptors[read],message,sizeof(message))<0) 17 perror("read"); 18 printf("odebrana wiadomość: %s\n",message); 19 if(close(descriptors[read])<0) 20 perror("parent - close read"); 21 if(wait(0)<0) 22 perror("wait"); 23 } void do_child_work(int descriptors[]) 26 { 27 char *message = "Systemy Operacyjne"; 28 if(close(descriptors[read])<0) 29 perror("child - close read"); 30 if(write(descriptors[write],message,strlen(message))<0) 31 perror("write"); 32 if(close(descriptors[write])<0) 33 perror("child - close write"); 34 exit(0); 35 } int main(void) 38 { 39 int pipe_descriptors[2]; 40 if(pipe(pipe_descriptors)<0) 41 perror("pipe"); 42 int pid = fork(); 43 if(pid==-1) 44 perror("fork"); 45 if(pid==0) 46 do_child_work(pipe_descriptors); 47 else 48 do_parent_work(pipe_descriptors); 49 return 0; 50 } Listing 1: Przykład prostej komunikacji za pomocą potoku Aby uprościć identyfikację deskryptorów potoku zdefiniowany został typ wyliczeniowy. Indeks w tablicy deskryptorów identyfikujący deskryptor do odczytu (0) został oznaczony elementem read, a iden- 2
4 tyfikujący deskryptor do zapisu, elementem write. Proces potomka nadaje do rodzica wiadomość Systemy Operacyjnej. Aby to uczynić najpierw zamyka deskryptor do odczytu, bo nie będzie wykonywał na potoku tej operacji, a następnie, za pomocą funkcji write() zapisuje do potoku, korzystając z deskryptora do zapisu, wspomnianą wiadomość, po czym zamyka również deskryptor do zapisu i kończy swoje działanie. Proces rodzicielski dysponuje buforem na 100 znaków, który po zadeklarowaniu jest inicjowany pustym łańcuchem, a wiec wszystkie jego elementy będą zawierały znak '\0'. Rodzic zamyka najpierw deskryptor potoku do zapisu, następnie przy pomocy funkcji read() i deskryptora do odczytu próbuje z potoku odczytać 100 znaków. Jednakże w potoku będzie mniej znaków i funkcja tylko tyle umieści w buforze message i zakończy swe działanie, nie sygnalizując wyjątku. Rodzic następne wypisze te znaki na ekran, poczeka na zakończenie potomka i również się zakończy. 3. Łącza nazwane - kolejki FIFO Kolejka fifo jest podobna w działaniu do potoku, ale w przeciwieństwie do niego ma nazwę, a więc mogą z niej korzystać procesy niespokrewnione, w podobny sposób, jak mogą korzystać z pliku. Kolejki fifo pojawiły się oficjalnie w systemach uniksowych zgodnych z oryginalną wersją Uniksa o nazwie System III. Pierwotnie tworzono je za pomocą funkcji mknod(), ale obecnie istnieje wygodniejsza w użyciu funkcja mkfifo(). Aby skorzystać z tak utworzonego łącza nazwanego jeden z procesów musi otworzyć je albo wyłącznie do zapisu, albo wyłącznie do odczytu (to samo ograniczenie co w przypadku potoku). Dodatkowo można zastosować flagę O_NONBLOCK. Powoduje to, że proces nie będzie oczekiwał na zakończenie pewnych operacji związanych z obsługą kolejki. Dokładniej objaśnia to tabela 1, której dwa ostatnie wiersze odnoszą się także do potoków. Sytuacja Nie ustawiono O_NONBLOCK Ustawiono O_NONBLOCK Próba otwarcia kolejki tylko do czytania, żaden pro- otworzy kolejkę do pisania. działania funkcji otwierającej Oczekiwanie, aż drugi proces Natychmiastowe zakończenie ces nie otworzył jej do pisania. bez sygnalizowania błędu. Próba otwarcia kolejki tylko do pisania, żaden proces nie otworzył jej do czytania. Próba czytania z kolejki, w której nie ma danych. Próba zapisania do zapełnionej kolejki. Oczekiwanie, aż drugi proces otworzy kolejkę do czytania. Oczekiwanie, aż pojawią się dane. Jeśli żaden proces nie otworzył kolejki do pisania, to funkcja natychmiast zwraca wartość zero. Jeśli w kolejce pojawią się dane, to funkcja zwróci liczbę oczytanych bajtów. Oczekiwanie, aż będzie miejsce do zapisania nowych danych. Natychmiastowe zakończenie działania funkcji otwierającej z sygnalizacją błędu. Funkcja odczytująca natychmiast kończy działanie, zwracając wartość -1. Jeśli kolejka nie jest otwarta do zapisu, to funkcja również natychmiast kończy działanie, ale zwraca wartość 0. Funkcja write() natychmiast kończy działanie zwracając wartość 0. Tabela 1: Zachowanie procesu dla kolejki fifo z ustawioną i nieustawioną flagą O_NONBLOCK. Dodatkowo, zapis i odczyt danych z potoków i kolejek fifo podlega następującym regułom: Jeśli proces żąda przeczytania mniejszej porcji danych niż bieżąco znajduje się w łączu, to otrzyma dokładnie tyle danych, ile zażądał. Reszta danych nie ulega zniszczeniu i może zostać pobrana podczas kolejnej operacji odczytu. Jeśli proces będzie usiłował odczytać więcej danych niż znajduje się bieżąco w łączu, to odczytanych i tak zostanie tylko tyle danych, ile jest w potoku lub kolejce. Jeśli proces próbuje czytać z łącza, które nie zostało przez żaden inny proces otwarte do pisania, to 3
5 funkcja read() zwróci zero. W przypadku kiedy ustawiony jest znacznik O_NONBLOCK zachowanie funkcji read() jest takie samo. Zapis danych jest operacją niepodzielną, o ile proces zapisuje dane do łącza porcjami mniejszymi od jego pojemności. Jeśli proces próbuje zapisywać do łącza, które nie zostało otwarte przez inny proces do odczytu, to otrzyma sygnał SIGPIPE, którego domyślna obsługa polega na zakończeniu procesu. Po skorzystaniu z kolejki fifo należy ją usunąć, aby nie zajmowała miejsca na dysku. Listingi 2 i 3 zawierają kody źródłowe programów komunikujących się przy pomocy kolejki fifo. 1 #include<stdio.h> 2 #include<unistd.h> 3 #include<fcntl.h> 4 #include<sys/types.h> 5 #include<sys/stat.h> 6 7 void read_from_fifo(int descriptor) 8 { 9 char message[100]=""; 10 if(read(descriptor,message,sizeof(message))<0) 11 perror("read"); 12 printf("odebrana wiadomość: %s\n",message); 13 } int main(void) 16 { 17 if(mkfifo("fifo",0600)<0) 18 perror("mkfifo"); 19 int descriptor = open("fifo",o_rdonly); 20 if(descriptor<0) 21 perror("open"); 22 read_from_fifo(descriptor); 23 if(close(descriptor)<0) 24 perror("close"); 25 if(unlink("fifo")<0) 26 perror("unlink"); 27 return 0; 28 } Listing 2: Przykład prostej komunikacji za pomocą kolejki fifo - odbiorca Program odbiorcy tworzy kolejkę, otwiera ją do odczytu, następnie próbuje z niej odczytać 100 znaków, czyli tyle, ile wynosi pojemność jego bufora. Jeśli nie będzie w kolejce informacji, to będzie czekał aż się pojawią. Ostatecznie nadawca umieści w niej mniej niż 100 znaków, ale zostaną one odczytane przez odbiorcę i wyświetlone na ekranie, po czym zamknie on kolejkę i usunie ją z systemu plików. Ostatnią operację powinien wyłącznie on wykonywać, ponieważ jako ostatni będzie korzystał z kolejki. Odbiorca musi być także uruchomiony przed nadawcą, ponieważ to on tworzy kolejkę. Wyjaśnienia wymaga tajemnicza liczba ósemkowa pojawiająca się jako drugi argument wywołania mkfifo(). Jest to wartość opisująca prawa dostępu do kolejki. Kolejne cyfry tej liczby (poza wiodącym zerem) opisują prawa odpowiednio dla: użytkownika, który jest właścicielem (w tym wypadku także twórcą) kolejki, grupy użytkowników, do której należy właściciel oraz dla pozostałych użytkowników zarejestrowanych w systemie. Ponieważ jedna cyfra ósemkowa odpowiada trzem bitom, to każda z tych cyfr zawiera informacje o trzech prawach: rwx, gdzie r oznacza prawo do odczytu, w prawo do zapisu, a x prawo do wykonania. Zatem w zapisie 4
6 0600 cyfra 6 oznacza prawa do odczytu i zapisu (110 w zapisie binarnym) dla właściciela kolejki, a dwa ostatnie zera oznaczają, że ani grupa, ani pozostali użytkownicy nie mają żadnych praw do tej kolejki. 1 #include<stdio.h> 2 #include<unistd.h> 3 #include<string.h> 4 #include<sys/types.h> 5 #include<sys/stat.h> 6 #include<sys/fcntl.h> 7 8 void write_to_fifo(int descriptor) 9 { 10 char *message = "Systemy Operacyjne"; 11 if(write(descriptor,message,strlen(message))<0) 12 perror("write"); 13 } int main(void) 16 { 17 int descriptor = open("fifo",o_wronly); 18 if(descriptor<0) 19 perror("open"); 20 write_to_fifo(descriptor); 21 if(close(descriptor)<0) 22 perror("close"); 23 return 0; 24 } Listing 3: Przykład prostej komunikacji za pomocą kolejki fifo - nadawca Proces nadawca powinien być uruchomiony po odbiorcy. Otwiera on kolejkę do zapisu, a następnie zapisuje w niej wiadomość dla odbiorcy, zamyka tę kolejkę i kończy swoje działanie. 4. Opisy funkcji popen() - funkcja uruchamia polecenie powłoki podane w jej argumentach wywołania oraz tworzy strumień służący do komunikacji między procesem wywołanym a wywołującym, który można obsługiwać standardowymi funkcjami fread() i fwrite(). Szczegóły: man 3 popen fread() - służy do odczytu buforowanego ze strumienia. Szczegóły: man 3 fread fwrite() - służy do buforowanego zapisu do strumienia. Szczegóły: man 3 fwrite pclose() - służy do zamykania strumienia stworzonego przez popen(). Szczegóły: man 3 pclose open() - otwiera plik (również kolejkę fifo) i zwraca liczbę go identyfikującą, nazywaną deskryptorem. Możliwe jest dzięki niej ustalenie trybu otwarcia i ustawienie znaczników. Szczegóły: man 2 open pipe() - służy do tworzenia potoku łączącego dwa spokrewnione procesy. Jako argument wywołania przyjmuje dwuelementową tablicę, w której będą zapisane deskryptory potoku. Deskryptor zerowy jest do odczytu, a pierwszy do zapisu. Zwykle jest ona wywoływana przed fork(), co powoduje, że procesy powstałe w wyniku działania tej ostatniej funkcji odziedziczą tablicę deskryptorów. Każdy z tych procesów zamyka jeden z deskryptorów, np. jeśli komunikacja przebiega według schematu: rodzic potomek, to rodzic zamyka deskryptor do odczytu, a potomek do zapisu. 5
7 Szczegóły: man 2 pipe read() - czyta określoną liczbę bajtów z deskryptora bez buforowania. Szczegóły: man 2 read write() - zapisuje określoną liczbę bajtów do deskryptora bez buforowania. Szczegóły: man 2 write close() - zamyka deskryptor pliku. Może być użyta z potokiem lub kolejką fifo. Do zamykania strumieni służy fclose() lub pclose(). Szczegóły: man 2 close mkfifo() - tworzy łącze nazwane o podanej nazwie i atrybutach, może być zastąpiona przez mknod(). Szczegóły: man 3 mkfifo fcntl() - służy do manipulacji deskryptorem pliku. Można dzięki niej ustawić flagę O_NONBLOCK dla potoku. Szczegóły: man 2 fcntl unlink() - funkcja ta usuwa z systemu plików nazwę, która może odnosić się do dowiązania lub pliku (ostatni przypadek odpowiada operacji usunięcia pliku). Można ją wykorzystać do automatycznego usuwania łącza nazwanego. Szczegóły: man 2 unlink 5. Zadania Uwaga! Programy należy napisać z podziałem na funkcje z parametrami. Każdy program musi sprawdzać, czy funkcja, z tych, które są opisane wyżej nie sygnalizuje wyjątku podczas wykonania, o ile z jej dokumentacji wynika, że może coś takiego robić. Przed zakończeniem działania każdy program powinien zwolnić zasoby, czyli zamknąć i/lub usunąć strumienie, potoki i kolejki fifo. 1. Napisz program, który wywoła polecenie sort nazwa.c, gdzie nazwa.c jest nazwą pliku z jego kodem źródłowym, a następnie odczyta 50 znaków przez nie zwróconych. 2. Napisz program, który uruchomi polecenie wc i przekaże mu na standardowe wejście dowolny ciąg znaków. 3. Napisz program, który stworzy potok i wykorzysta go do przesyłania danych w obrębie jednego procesu. 4. Napisz program, który stworzy potok i wykorzysta go do komunikacji między dwoma spokrewnionymi procesami. Zadanie wykonaj tak, aby za pomocą argumentów wywołania programu (parametry argc i argv) można było ustalić, czy flaga O_NONBLOCK będzie ustawiona, czy nie. 5. Napisz program, który podzieli się na dwa procesy (rodzic i potomek) komunikujące się przy pomocy potoków. Komunikacja musi być dwukierunkowa. 6. Napisz dwa oddzielne programy (realizując oddzielny kod), które będą się komunikowały przy pomocy kolejki fifo. Wykorzystaj argumenty wywołania tych programów (patrz zadanie 4), aby można było ustalić, czy będą one ustawiały flagę O_NONBLOCK, czy też nie. Po zakończeniu komunikacji jeden z procesów musi usunąć kolejkę. 7. Napisz program, w którym komunikacja między spokrewnionymi procesami będzie odbywała się w jednym kierunku za pomocą łącza nienazwanego, a w drugim za pomocą łącza nazwanego. 8. Stwórz programy do dialogu między dwoma użytkownikami pracującymi w systemie na osobnych terminalach. Do komunikacji użyj kolejki fifo stworzonej za pomocą funkcji mknod(). 9. Napisz program, który wygeneruje cztery procesy. Każdy z tych procesów będzie się komunikował z następnym za pomocą łącza nienazwanego. Pierwszy proces wyśle przez swoje łącze liczby 1, 2, 3 i 4. Każdy kolejny zwiększy każdą z nich o 1, a ostatni z nich wypisze je na ekranie. 6
8 10. Napisz trzy programy komunikujące się przez kolejkę fifo. Pierwszy program będzie wysyłał kolejne liczby parzyste, drugi kolejne liczby nieparzyste, a trzeci będzie odbierał te liczby i je sumował. Wszystkie procesy powinny wyświetlać wyniki swojej pracy na ekranie. 7
Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie trzecie (jedne zajęcia) Temat: Potoki i łącza nazwane w Linuksie. Opracowanie: dr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja
Bardziej szczegółowoInstrukcja do laboratorium Systemów Operacyjnych (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) wiczenie trzecie Temat: Potoki i ł cza nazwane w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja z wykorzystaniem
Bardziej szczegółowoKomunikacja za pomocą potoków. Tomasz Borzyszkowski
Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania
Bardziej szczegółowoKolejki FIFO (łącza nazwane)
Kolejki FIFO (łącza nazwane) Systemy Operacyjne 2 laboratorium Mateusz Hołenko 6 listopada 2011 Plan zajęć 1 Łącza w systemie Linux kolejki FIFO vs. potoki specyfika łączy nazwanych schemat komunikacji
Bardziej szczegółowoSystemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot
Systemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot października 2018 Wstęp W tej instrukcji zawarte są informacje na temat tworzenia i obsługiwania
Bardziej szczegółowoŁącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.
Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int
Bardziej szczegółowoŁącza nienazwane(potoki)
8. Łącza nienazwane(potoki) Łącze (potok, ang. pipe) jest to urządzenie komunikacyjne pozwalające na przesyłanie informacji w jedną stronę. Jeden proces wysyła dane do łącza za pomocą funkcji write, zaś
Bardziej szczegółowoInstrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu
Bardziej szczegółowo4.2 Sposób korzystania z l acza
4.2 Sposób korzystania z l acza 31 Opis programu: Program procesu potomnego (linie 16 19) jest taki sam, jak w przyk ladzie na listingu 3. W procesie macierzystym nastepuje z kolei przekierowanie standardowego
Bardziej szczegółowoPliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:
Pliki W celu wykonania jakiejkolwiek operacji na istniejącym pliku, plik ten musi zostać otwarty, natomiast jeśli plik jeszcze nie istnieje, to musi zostać utworzony. Plik może zostać otwarty w trybie:
Bardziej szczegółowoLaboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak
Laboratorium z systemów operacyjnych System plików - funkcje systemowe Anna Wojak 1 Zagadnienia do samodzielnego przygotowania: podstawowe polecenia linux, podstawy programowania w jezyku C, deskryptor
Bardziej szczegółowoLaboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach
Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,
Bardziej szczegółowoPliki. Operacje na plikach w Pascalu
Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie
Bardziej szczegółowoWykład PASCAL - Pliki tekstowe
Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,
Bardziej szczegółowoBiblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
Bardziej szczegółowoJak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.
Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania. Dlatego trzeba je zapisywać do pliku, a potem umieć je z tego
Bardziej szczegółowoĆwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim
Bardziej szczegółowoIPC: Kolejki komunikatów
IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat
Bardziej szczegółowoFunkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Bardziej szczegółowoProgramowanie w językach
Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie
Bardziej szczegółowoFunkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Bardziej szczegółowoOperacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia
Materiały Operacje na plikach Informatyka Operacje wejścia-wyjścia w C/C++: Podejście proceduralne Podejście obiektowe Standardowe strumienie wejścia i wyjścia stdin - strumień wejściowy (klawiatura) cin
Bardziej szczegółowoCzęść XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.
Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja
Bardziej szczegółowoLekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()
Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,
Bardziej szczegółowoProgramowanie w językach wysokiego poziomu
Programowanie w językach wysokiego poziomu zajęcia nr 2 Elektronika i Telekomunikacja, semestr III rok akademicki 2014/2015 Plan dzisiejszych zajęć Pliki tekstowe 1. Operacje na plikach - wprowadzenie
Bardziej szczegółowoPliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego
Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt
Bardziej szczegółowoPliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
Bardziej szczegółowoNazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek
Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for
Bardziej szczegółowo4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane
Jędrzej Ułasiewicz Łącza nienazwane, nazwane, funkcja select 1 4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane Łącza nienazwane (ang. Unnamed Pipes) i nazwane (ang. Named Pipes) - jedna
Bardziej szczegółowoObsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011
Obsługa plików Systemy Operacyjne 2 laboratorium Mateusz Hołenko 25 września 2011 Plan zajęć 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach otwieranie i zamykanie zapis i odczyt
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
Bardziej szczegółowoJ. Ułasiewicz Łącza nienazwane, nazwane, select 1
J. Ułasiewicz Łącza nienazwane, nazwane, select 1 4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane Łącza nienazwane (ang. Unnamed Pipes) i nazwane (ang. Unnamed Pipes) - jedna z historycznie
Bardziej szczegółowo5 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 5 1/6 Język C Instrukcja laboratoryjna Temat: Funkcje, parametry linii poleceń, typ wyliczeniowy. 5 Przygotował: mgr inż. Maciej Lasota 1) Parametry linii poleceń. Język C oprócz wprowadzania
Bardziej szczegółowoTemat zajęć: Obsługa łączy komunikacyjnych
Temat zajęć: Obsługa łączy komunikacyjnych Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: I. Łącza komunikacyjne Potoki nienazwane, potoki nazwane, przykłady
Bardziej szczegółowoProgram wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:
Rozdział 1 Obsługa plików W językach C pliki powiązane są ze strumieniami i pracuje się na nich podobnie jak na innych strumieniach. W języku C do operacji na plikach służą funkcje z biblioteki stdio.h,
Bardziej szczegółowoPodstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak
Bardziej szczegółowoProcesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011
Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 9 października 2011 Plan zajęć 1 Procesy w systemie Linux proces procesy macierzyste i potomne procesy zombie i sieroty 2 Funkcje systemowe pobieranie
Bardziej szczegółowoObsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli
Bardziej szczegółowoSYSTEMY CZASU RZECZYWISTEGO - VxWorks
WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()
Bardziej szczegółowoSystem plików warstwa logiczna
Dariusz Wawrzyniak Pojęcie u Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. Plik jest podstawową jednostką logiczną magazynowania informacji w systemie
Bardziej szczegółowoSieci Komputerowe 2 / Ćwiczenia 2
Tematyka Sieci Komputerowe 2 / Ćwiczenia 2 Opracował: Konrad Kawecki na podstawie materiałów: http://www.isi.edu/nsnam/ns/tutorial/index.html Na ćwiczeniach zapoznamy się z symulatorem
Bardziej szczegółowoPliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych. Może posiadać określone atrybuty, a odwołanie do niego odbywa się poprzez nazwę. Każdy plik ma skończoną
Bardziej szczegółowoSystemy Operacyjne - Operacje na plikach
Systemy Operacyjne - Operacje na plikach Andrzej Stroiński Institute of Computer Science Poznań University of Technology 1 październik, 2012 Wprowadzenie do ANSI-C Pomoc systemowa man gcc man 2 write man
Bardziej szczegółowo1 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część jedenasta Przetwarzanie plików amorficznych Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoOpis protokołu RPC. Grzegorz Maj nr indeksu:
Opis protokołu RPC Grzegorz Maj nr indeksu: 236095 1 Streszczenie Niniejszy dokument opisuje specyfikację protokołu RQP (Remote Queues Protocol). W jego skład wchodzą: opis celów protokołu; opis założeń
Bardziej szczegółowo1. Procesy i współbieżność
1. Procesy i współbieżność Opracował: Sławomir Samolej Politechnika Rzeszowska, Katedra Informatyki i Automatyki, Rzeszów, 2013. 1.1. Wprowadzenie Proces to przestrzeń adresowa i pojedynczy wątek sterujący,
Bardziej szczegółowoJęzyki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński
Języki programowania Część siódma Przetwarzanie plików amorficznych Konwencja języka C Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoaodczytywać zniegoza pomoc afunkcjiread, (niebuforowane funkcje wejścia/wyjścia). e sukcesem, to zwróci liczb, erzeczywiściezapisanychbajtów.
c Wies law P laczek 15 4 Potoki 4.1 Wprowadzenie Potok (ang. pipe) możnauznaćzaplikspecjalnegotypuktórys lużydoprzechowywania ograniczonej ilości danych i do którego dost ep może si eodbywaćjedyniewtrybie
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Bardziej szczegółowoProgramowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24
Programowanie w C++ Wykład 11 Katarzyna Grzelak 21 maja 2018 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24 Strumienie Strumień bajtów płynacy od źródła do ujścia: 1 standardowe strumienie wejściowe
Bardziej szczegółowolekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Bardziej szczegółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoWstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Bardziej szczegółowoInstrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie czwarte (dwa zajęcia) Temat: Komunikacja IPC kolejki komunikatów Opracowanie: mgr in ż. Arkadiusz Chrobot dr in ż. Grzegorz Łukawski
Bardziej szczegółowoPytania sprawdzające wiedzę z programowania C++
Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoPowłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.
Powłoka I Popularne implementacje W stylu sh (powłoki zdefiniowanej w POSIX) bash (najpopularniejsza) zsh ksh mksh W stylu csh csh tcsh 12 października 2018 1 / 16 Powłoka II Zachęta Komunikuje się z użytkownikiem
Bardziej szczegółowoLaboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje
Bardziej szczegółowoLaboratorium 6: Dynamiczny przydział pamięci. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 6: Dynamiczny przydział pamięci dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 15 maja 2015 1. Wprowadzenie Instrukcja poświęcona jest dynamicznemu przydziałowi i zwalnianiu pamięci w
Bardziej szczegółowoINFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury
Bardziej szczegółowoMetody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany
Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany plik. boolean exists() sprawdza czy plik o zadanej nazwie
Bardziej szczegółowoInstrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie piąte (jedne zajęcia) Temat: Semafory Opracowanie: mgr in ż. Arkadiusz Chrobot dr in ż. Grzegorz Łukawski Wprowadzenie 1. Semafory
Bardziej szczegółowoDziałanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
Bardziej szczegółowoArgumenty wywołania programu, operacje na plikach
Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują
Bardziej szczegółowoProgram dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.
Program 7 Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku. #include #include using namespace std; int main()
Bardziej szczegółowoStatyczne i dynamiczne predykaty
Statyczne i dynamiczne predykaty Dynamiczne dowodzą lub odwołują pewne reguły, Statyczne nie potrafią tego co dynamiczne, ponieważ ich punkty zostały zebrane w całość, która działa szybciej, ale nie jest
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowoKlient poczty elektronicznej - Thunderbird
Klient poczty elektronicznej - Thunderbird Wstęp Wstęp Klient poczty elektronicznej, to program który umożliwia korzystanie z poczty bez konieczności logowania się na stronie internetowej. Za jego pomocą
Bardziej szczegółowoISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików
Plik to uporządkowany ciąg danych Dostęp do danych w pliku jest sekwencyjny, tj. istnieje pojęcie elementu aktualnego (tzw. wskaźnika pliku). Możliwy dostęp do danych w pliku jest tylko tam, gdzie wskazuje
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoZnaki globalne w Linuxie
Znaki globalne w Linuxie * reprezentuje jeden lub wiele znaków (wild-card character)? reprezentuje dokładnie jeden znak (wild-card character) [abcde] reprezentuje dokładnie jeden znak z wymienionych [a-e]
Bardziej szczegółowoKolejki komunikatów POSIX
Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 1 Kolejki komunikatów POSIX 1 Wstęp Kolejka komunikatów Q posiada następujące własności: - Posiada określoną pojemność N komunikatów (długość bufora komunikatów).
Bardziej szczegółowoISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików
Plik to uporządkowany ciąg danych Dostęp do danych w pliku jest sekwencyjny, tj. istnieje pojęcie elementu aktualnego (tzw. wskaźnika pliku). Możliwy dostęp do danych w pliku jest tylko tam, gdzie wskazuje
Bardziej szczegółowoSYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)
Procesy i shell. Polecenia ps, sleep, exit, jobs, bg, fg, top, kill, bash, tcsh, which, type, whereis, touch. Metaznak & i >>. Dowiązania miękkie i twarde. Proces jest programem, który jest wykonywany
Bardziej szczegółowoTechnologie Informacyjne - Linux 2
Technologie Informacyjne - 2 Instytut Matematyki Uniwersytet Gdański Powłoka - polecenia pośredniczace Polecenie grep wypisuje z pliku lub strumienia wejściowego te wiersze, które sa zgodne z podanym wyrażeniem.
Bardziej szczegółowo1 Pierwsze kroki w C++ cz.3 2 Obsługa plików
1 Pierwsze kroki w C++ cz.3 2 Obsługa plików Do pracy z plikami zewnętrznymi niezbędna będzie biblioteka fstream. Udostępnia ona programiście narzędzia do zapisu i odczytu plików. 2.1 Typ zmiennej fstream.
Bardziej szczegółowoSpis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)
Bardziej szczegółowoWykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include
Bardziej szczegółowosposób wykonywania operacji zapisu i odczytu dane odczytywane z l acza usuwane (nie można ich odczytać ponownie),
27 4 L acza L acza w systemie UNIX sa plikami specjalnymi, s luż acymi do komunikacji pomiedzy procesami. L acza maja kilka cech typowych dla plików zwyk lych, czyli posiadaja swój i-weze l, posiadaja
Bardziej szczegółowoPodstawy Programowania 2 Dwukierunkowa lista liniowa. Plan. Wstęp. Implementacja. Notatki. Notatki. Notatki. Notatki.
Podstawy Programowania 2 Dwukierunkowa lista liniowa Arkadiusz Chrobot Zakład Informatyki 7 kwietnia 2019 1 / 55 Plan Wstęp Implementacja Typ bazowy i wskaźnik listy Tworzenie listy Dodawanie elementu
Bardziej szczegółowo4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()
4. Pliki 4.1. Informacje ogólne o dostępie do plików w PHP Jak praktycznie każdy język programowania, PHP zapewnia dostęp do systemu plików znajdujących się na komputerze, na którym uruchamiany jest skrypt,
Bardziej szczegółowoStrumienie, pliki. Sortowanie. Wyjątki.
Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy
Bardziej szczegółowoInstytut Teleinformatyki
Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Dziedzina Unix laboratorium: 06 Kraków, 2014 06. Programowanie Usług Sieciowych
Bardziej szczegółowoJ. Ułasiewicz Łącza nienazwane, nazwane, select 1
J. Ułasiewicz Łącza nienazwane, nazwane, select 1 4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane Łącza nienazwane (ang. Unnamed Pipes) i nazwane (ang. Unnamed Pipes) - jedna z historycznie
Bardziej szczegółowoWykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VI Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Operacje na plikach Operacje na plikach Aby móc korzystać z pliku należy go otworzyć w odpowiednim
Bardziej szczegółowoIteracyjny serwer TCP i aplikacja UDP
Iteracyjny serwer TCP i aplikacja UDP Iteracyjny serwer TCP Funkcje wywoływane przez serwer TCP socket() - bind() - listen() - accept() - read() / write() - close() socket() Creates an endpoint for communication
Bardziej szczegółowoinstrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI
instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI SPIS TREŚCI 04 Opis opcji terminala 05 SKANOWANIE 06 Skanowanie kod 07 Skanowanie kod ilość 08 Skanowanie kod ilość cena
Bardziej szczegółowoutworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Bardziej szczegółowoSMS-8010. SMS telefon. Umożliwia łatwe i szybkie wysyłanie wiadomości SMS...
SMS-8010 SMS telefon Umożliwia łatwe i szybkie wysyłanie wiadomości SMS... Spis treści: 1. Główne funkcje telefonu SMS-8010?... 3 2. Instalacja... 4 3. Ustawianie daty i czasu... 4 4. Rozmowy telefoniczne...
Bardziej szczegółowoWiadomości i umiejętności
Kryteria oceniania wiadomości i umiejętności uczniów z informatyki. Zakres wymagań na poszczególne oceny szkolne dla klas IV VI do programu nauczania Przygoda z komputerem DKW 4014 125/00 Opracował: mgr
Bardziej szczegółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Bardziej szczegółowoPoniższe funkcje opisane są w 2 i 3 części pomocy systemowej.
Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,
Bardziej szczegółowoWyraż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
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 obrębie skryptu. Wyrażenia include() i require() są niemal
Bardziej szczegółowo