Wykład (8) - Plik

Nasza ocena:

3
Wyświetleń: 637
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Wykład (8) - Plik - strona 1 Wykład (8) - Plik - strona 2 Wykład (8) - Plik - strona 3

Fragment notatki:

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

Dostęp do pliku za pomocą uchwytu (ang. Handle) - operacje niskiego poziomu
1. Funkcje otwierania (zwraca uchwyt pliku) oraz zamknięcia pliku
int
int
open ( const char ∗nazwa_pliku, int tryb_dostepu )
close ( int handle )
2. Funkcje zapisu i odczytu z pliku
int
int
write ( int handle, void ∗adres_bufora, unsigned ilosc_bajtow )
read ( int handle, void ∗adres_bufora, unsigned ilosc_bajtow );
3. Funkcje pomocnicze
int
long
long
long
eof ( int handle )
// zwraca 1 gdy „END OF FiILE”
tell ( int handle )
// zwraca pozycję wskaźnika pliku
filelength ( int handle )
// zwraca długosć pliku w bajtach
lseek ( int handle, long przesuniecie, int względem_czego )
// przesuwa wskaźnik pliku o zadaną ilość bajtów
// względem zadanego miejsca:
SEEK_SET - względem początku pliku
SEEK_CUR - względem aktualnej pozycji
SEEK_END - względem końca pliku
Przykład
int plik;
char tekst[ ] = ”To jest tekst zapisywany i odczytywany z pliku”;
char znak;
plik = open( ”test.dat”, O_CREAT | O_RDWR );
write( plik, tekst, strlen( tekst ) );
// zapis zawartosci tekstu do pliku
lseek( plik, 0L, SEEK_SET );
// przesuniecie wskaźnika na poczatek
do
{
// odczyt po jednym znaku aż do napotkania eof
read( plik, &znak, 1);
printf( ”%c”, znak );
// wydruk odczytanego znaku na ekranie
} while ( !eof( plik ) );
close( plik );
M. Piasecki: PODSTAWY PROGRAMOWANIA
−1−
(W10) Plikowe operacje wejścia/wyjscia
Funkcje zawarte w bibliotece
Operacje we/wy realizowane za pomocą strumieni (ang. Stream)
Strumienie reprezentowane są przez zmienne typu FILE. Struktura taka
tworzona jest automatycznie podczas otwierania strumienia (zawiera
informacje o nazwie pliku, trybie otwarcia, itp.). Wszystkie dalsze operacje
na strumieniu wymagają podania wskaźnika na tą strukturę.
Przykład
FILE ∗plik_wej, ∗wyniki ;
// definicja zmiennych plikowych
0. Standardowe strumienie wejścia i wyjscia (otwierane automatycznie)
stdin
stdout
stderr
stdprn




strumień wejściowy (konsola - klawiatura)
strumień wyjściowy (konsola - monitor)
strumień komunikatów błędów (konsola)
strumień drukarki
1. Funkcje otwarcia (zwraca wskaźnik na FILE) oraz zamknięcia pliku
FILE ∗
fopen ( char ∗nazwa_pliku, char ∗rodzaj_operacji )
rodzaj operacji:
r
w
a
+
b
t






tylko do odczytu
tylko do zapisu (utworzenie nowego)
dopisywanie na końcu
z mozliwością aktualizacji
otwarcie jako plik binarny
otwarcie jako plik tekstowy
Przykład
FILE ∗plik;
// utworzenie pliku binarnego z możliwoscia aktualizacji
plik = fopen( ”a:\\wyniki.dat”, ”w+b” );
if( plik == NULL )
// kontrola błędów we/wy
{
printf( ”Blad otwarcia pliku wyników” );
return -1;
}
int
fclose ( FILE ∗strumien )
// zamknięcie wskazanego strumienia
int
fcloseall (void )
// zamknięcie wszystkich strumieni
M. Piasecki: PODSTAWY ... zobacz całą notatkę

Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz