Kurs programowania w C cz. 82

Nasza ocena:

5
Wyświetleń: 560
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C cz. 82 - strona 1

Fragment notatki:

98 ROZDZIAŁ 14. CZYTANIE I PISANIE DO PLIKÓW identyfikuje dany plik w systemie operacyjnym. Liczba ta w systemach typu UNIX jest nazywana  deskryptorem  pliku. Należy pamiętać, że nie wolno nam używać funkcji z obu tych grup jednocześnie w stosunku do jednego, otwartego pliku, tzn. nie można najpierw otworzyć pliku za pomocą fopen(), a następnie odczytywać danych z tego samego pliku za pomocą read(). Czym różnią się oba podejścia do obsługi plików? Otóż metoda wysokopoziomowa ma swój własny bufor, w którym znajdują się dane po odczytaniu z dysku a przed wysłaniem ich do programu użytkownika. W przypadku funkcji niskopoziomowych dane kopiowane są bezpośrednio z pliku do pamięci programu. W praktyce używanie funkcji wysokopoziomowych jest prostsze a przy czytaniu danych małymi porcjami również często szybsze i właśnie ten model zostanie tutaj zaprezentowany. Dane znakowe Skupimy się teraz na najprostszym z możliwych zagadnień — zapisie i odczycie pojedynczych znaków oraz całych łańcuchów. Napiszmy zatem nasz pierwszy program, który stworzy plik “test.txt” i umieści w nim tekst “Hello world”: #include  #include  int main () { FILE *fp; /* używamy metody wysokopoziomowej */ /* musimy mieć zatem identyfikator pliku, uwaga na gwiazdkę! */ char tekst[] = "Hello world"; if ((fp=fopen("test.txt", "w"))==NULL) { printf ("Nie mogę otworzyć pliku test.txt do zapisu!\n"); exit(1); } fprintf (fp, "%s", tekst); /* zapisz nasz łańcuch w pliku */ fclose (fp); /* zamknij plik */ return 0; } Teraz omówimy najważniejsze elementy programu. Jak już było wspomniane wyżej, do identyfikacji pliku używa się wskaźnika na strukturę FILE (czyli FILE *). Funkcja fopen  zwraca ów wskaźnik w przypadku poprawnego otwarcia pliku, bądź też NULL, gdy plik nie może zostać otwarty. Pierwszy argument funkcji to nazwa pliku, natomiast drugi to  tryb dostępu  —  w  oznacza “write” (pisanie); zwrócony “uchwyt” do pliku będzie mógł być wykorzystany jedynie w funkcjach zapisujących dane. I odwrotnie, gdy otworzymy plik podając tryb  r  (“read”, czytanie), będzie można z niego jedynie czytać dane. Funkcja fopen została dokładniej opisana w odpowiedniej  części  rozdziału o bibliotece standardowej. Po zakończeniu korzystania z pliku należy plik zamknąć. Robi się to za pomocą funkcji  fclose.  Jeśli zapomnimy o zamknięciu pliku, wszystkie dokonane w nim zmiany zostaną utracone! ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz