Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Intrari si iesiri (I/O). Fisiere.

c


Intrari si iesiri (I/O). Fisiere.

Intrari/iesiri standard



La lansarea in executie a oricarui program se "deschid" in mod automat 3 dispozitive/fisiere/streamuri standard:

stdin standard input): dispozitivul standard de intrare, asociat in mod implicit cu tastatura

stdout standard otuput): dispozitivul standard de iesire, asociat in mod implicit cu display-ul

stderr standard error): dispozitivul standard pentru comunicarea mesajelor de eroare, asociat    intotdeauna cu display-ul

Stdin si respectiv stdout pot fi redirectate astfel incat intrarea sa se faca dintr-un fisier, respectiv iesirea sa se faca intr-un fisier.

Fisiere. Modele

Doua modele:

Modelul UNIX: fisiere, in care accesul se face la nivel de byte, comanda dispozitivelor fizice se face de catre sistemul de operare (SO), singura legatura a programului cu fisierul fiind handle-ul (un numar intreg nenegativ returnat de functia de deschidere fisier - open). Caracteristici: simplitate, eleganta dar si eficienta mai scazuta. Se pot folosi pentru a "construi" functii de I/O de nivel superior.

Modelul cu streamuri: streamuri (dispozitive logice de I/O), pentru care functia de deschidere (fopen) pregateste un bloc de control al fisierului (FCB, o structura de tip FILE, prin intermediul caruia se efectueaza/gestioneaza toate operatiile asupra fisierului) si intoarce un pointer (file pointer) spre acest bloc de control. Blocul de control al fisierelor se pastreaza in memoria programului ceea ce constituie principalul dezavantaj al modelului: din eroare, se poate altera continutul FCB, pentru ca este accesibil! Avantaj: este mai eficient si este adaptabil diverselor tipuri de SO.

Standardul C promoveaza modelul cu streamuri tolerand insa si modelul UNIX

Modelul cu streamuri. Operatii tipice cu streamuri

Pentru a putea opera asupra unui stream/fisier, acesta trebuie "deschis" (fopen), adica trebuie conectat programul la dispozitivul de I/O vizat.

Operatiile asupra unui stream deschis se pot rezuma astfel:

Citire

Scriere

Actualizare

Adaugare

Pe de alta parte operatiile de acces la continutul unui fisier se poate face buferizat (prin intermediul unui buffer) sau nebuferizat (direct, byte cu byte).

Un stream asupra caruia nu se mai efectueaza operatii trebuie "inchis" (fclose

In functie de continut, fisierele sunt de doua tipuri:

  • Fisere text, care sunt "colectii" de linii de text, fiecare linie terminata cu un caracter newline (intern, pentru ca extern/fizic, terminatorul de linie poate fi altul si e sarcina implementarii sa asigure compatibilitatea/conversia).
  • Fisiere binare, care sunt colectii de bytes, a caror interpretare cade exclusiv in sarcina programului.

Clasificare a functiilor standard de I/O (modelul cu streamuri)

Functii de I/O formatata

  • fprintf
  • fscanf
  • printf
  • scanf
  • sprintf
  • sscanf
  • vfprintf
  • vprintf
  • vsprintf

Functii de I/O la nivel de caracter

  • fgetc
  • fputc
  • fgets
  • fputs
  • getc
  • putc
  • getchar
  • putchar
  • gets
  • puts
  • ungetc

Functii de I/O cu acces direct

  • fread
  • fwrite

Functii de pozitionare in fisiere

  • fgetpos
  • fsetpos
  • fseek
  • ftell
  • rewind

Functii pentru gestionarea bufferelor

  • fflushall
  • setbuf
  • setvbuf

Functii pentru tratarea a erorilor

  • clearerror
  • feof
  • ferror
  • perror


Document Info


Accesari: 1049
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )