wyklad PP pliki, Elektronika i Telekomunikacja, z PENDRIVE, Politechnika - EiT, 2011 2012 - sem 2, PODSTAWY ...

[ Pobierz całość w formacie PDF ]
Programowanie w C
Wykład 2b
Operacje we/wy - obsługa plików
 
Buforowanie Wejścia/Wyjścia

Bufor (
buffer
) -obszar pamięci służący do tymczasowego przechowywania
danych przed przesłaniem ich do miejsca przeznaczenia

Posługując się buforami system operacyjny zmniejsza ilość odwołań do
fizycznych urządzeń Wejścia/Wyjścia.

Strumienie We/Wy są buforowane w sposób domyślny

Fizyczny zapis do pliku -
buffer flush

Opróżnienie bufora i przesłanie danych na dysk można wymusić funkcją
fflush()
int fflush(FILE *stream);
Jeśli wykonanie funkcji fflush() zakończyło się poprawnie to jest zwracana
wartość 0, w przeciwnym przypadku - wartość EOF
 Wskaźniki typu FILE

Struktura FILE służy do zarządzania plikami i jest zdefiniowana w pliku
stdio.h

Wskaźnik typu FILE -
file pointer
, służy do odwoływania się do konkretnego
pliku dyskowego.

W obrębie struktury FILE można znaleźć: rozmiar pliku, znacznik pozycji w
pliku , adres bufora danych itp.
typedef struct _iobuf
{
char* _ptr;
int _cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname;
} FILE;
 Operacje wejścia/wyjścia, strumienie, pliki

Gdy program rozpoczyna działanie otwarte są trzy standardowe strumienie
wejścia/wyjścia:
stdin - standardowe wejście (konsola - klawiatura)
stdout - standardowe wyjście (konsola - monitor)
stderr - standardowe wyjście dla komunikatow o błędach (konsola - monitor)

definicje powyższych strumieni oraz prototypy funkcji wejścia/wyjścia umieszczone
są w pliku nagłowkowym stdio.h
/*
* The three standard file pointers provided by the run time library.
* NOTE: These will go to the bit-bucket silently in GUI applications!
*/
#define STDIN_FILENO
0
#define STDOUT_FILENO
1
#define STDERR_FILENO
2
#define stdin
(&_iob[STDIN_FILENO])
#define stdout
(&_iob[STDOUT_FILENO])
#define stderr
(&_iob[STDERR_FILENO])
Warto zauważyć, że konstrukcja:
fprintf (stdout, "Hej, ja działam!") ; jest równoważna konstrukcji
printf ("Hej, ja działam!"); Podobnie jest z funkcją scanf():
fscanf (stdin, "%d", &zmienna); działa tak samo jak
scanf("%d", &zmienna);
 Wszystkie operacje związane z przetwarzaniem pliku zazwyczaj
składają się z trzech części:
1
. Otwarcie pliku (strumienia):
- funkcje: fopen()
2.
Operacje na pliku (strumieniu),
np. czytanie, pisanie:
- funkcje dla plików tekstowych: fprintf(), fscanf(), fgetc(),
fputc(), fgets(), fputs()…
- funkcje dla plików binarnych: fread(), fwrite(), …
3. Zamknięcie pliku (strumienia):
- funkcja: fclose().
Każdy strumień może pracować w trybie binarnym lub
tekstowym.
  [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • telefongry.keep.pl






  • Formularz

    POst

    Post*

    **Add some explanations if needed