Roszdział



Pobieranie 5,61 Kb.
Data05.07.2018
Rozmiar5,61 Kb.

Obsługa wejścia wyjścia niskiego poziomu.

Operacje wejścia wyjścia są realizowane przez funkcje read write . Argumentami funkcji są kolejno: deskryptor zbioru , drugim bufor do którego są wpisywane dane lub przesyłane dane na urządzenie peryferyjne. Trzeci argument określa liczbę bajtów przesyłanych. Wywołania funkcji możemy zapisać:
n_czytaj = read(f1, bufor1, n1);

n_pisz = write(f2, bufor2, n2);
Po wykonaniu instrukcji zmienne n_czytaj n_pisz przyjmują wartość faktycznie przesłanych bajtów, 0 oznacza koniec zbioru , wartość –1 informuje o wystąpieniu błędu. Ilość przesyłanych bajtów może być dowolna, często spotykane wartości przy bezpośrednim dostępie do zbiorów to 512, 1024, 2048 i 4096.

Do otwarcia zbioru służy instrukcja open, która deskryptor pliku będący liczbą całkowitą i –1 wypadku wystąpienia błędu.

int deskryptor;
deskryptor = open(nazwa_zbioru, tryb);
tryb liczba 0 – do czytania O_RDONLY

1 – do zapisu O_WRONLY

2 – do zapisu i odczytu O_RDWR
Do tworzenia nowego zbioru służy funkcja create.
deskryptor = create(nazwa_zbioru, maska);
Maska określa uprawnienia właściciela zbioru, grupy oraz wszystkich użytkowników do czytania, pisania, wykonywania. Najłatwiej jest go podać trzycyfrową liczbą ósemkową np. 0755 nadaje właścicielowi zbioru prawo do czytania, pisania i wykonywania, natomiast grupie i pozostałym użytkownikom prawo do czytania i wykonywania.

Funkcja close(deskryptor);

przerywa połączenie między deskryptorem zbioru, a zbiorem. Funkcja unlink(nazwa_zbioru);

usuwa zbiór o podanej nazwie z systemu plików.




©operacji.org 2019
wyślij wiadomość

    Strona główna