[ Pobierz całość w formacie PDF ]
.3.2.3 Funkcja systemowa dup()Do spisu tresci tematu 63.2.3 Funkcja systemowa dup()Spis tresciWprowadzenieAlgorytm funkcji.Bibliografia.WprowadzenieFunkcja dup()tworzy duplikat istniejacego deskryptora pliku i przekazuje numernowego deskryptora zwiazanego z tym samym plikiem lub laczem.Oba deskryptory dziela ten sam wskaznik do tablicy plikow.Funkcja gwarantuje zwrot dostepnego deskryptora pliku o najnizszymnumerze.Poniwaz oba deskryptory wskazuja na ten sam plik jedyna korzyscjaka mozna czerpac z zastosowanuia funkcji dup() jest taka ,zedeskryptory maja rozne numery.Pozwala to np.zmieniac standardowe lacza dopisania,czytania lub wyjscie na blad.Spis tresci.Algorytm funkcjiDEFINICJA: int dup(int oldfd)WYNIK: 0 w przypadku sukcesu oraz na zmiennej stat_buf zapisuje status pliku-1 w przypadky bledu oraz na zmiennej errno:EBADF (bledny numer pliku)EMFILE (za duzo otwartych plikow)Argumentem funkcji jest deskryptor pliku,ktory chcemy zduplikowac.Implementacja funkcji:{sprawdz legalnosc deskryptora oldfd(tzn.czy nie jest wiekszyod 256 oraz czy wskazyje na jakis plik);znajdz pierwszy wolny deskryptor w tablicy deskryptorow plikow uzytkownika;skopiuj deskryptor oldfd do znalezionej pozycji;w tablicy plikow zwieksz o 1 licznik dowiazan z tablicy deskryptorow;zwroc znaleziony deskryptor;}Spis tresci.BibliografiaPliki zrodlowe Linuxa:fs/fcntl.c (implementacja).Maurice J.Bach: Budowa systemu operacyjnego UNIX - rozdial 5.11Marc J.Rochkind: Programowanie w systemie UNIX dla zaawansowanychSpis tresci.Autor: Piotr Dada
[ Pobierz całość w formacie PDF ]