Bună ziua și bun venit înapoi și această prelegere vreau să vorbesc despre accesarea fișierelor, astfel încât fișierele pe disc să aibă
un nume în regulile pentru nume și fișierele sunt determinate de sistemul de operare.
Este posibil să fie necesar să adăugați doar numele în funcție de ce OS funcționează programul dvs.
Dacă programul dvs. rulează pe Windows versus Linux, structura actuală a datelor, structura directorului este
diferită, de asemenea, dacă utilizați slicers înainte sau slash-uri înapoi, trebuie să aveți
dreptate și programul.
Dar, în cea mai mare parte, numele sunt relativ având aceleași reguli de denumire și așa mai departe.
Dar există șansa că va trebui să o ajustați.
Un program trimite un fișier printr-un pointer de fișier sau un pointer de flux.
Deoarece funcționează pe mai mult decât un fișier, puteți să-l menționăm mai devreme, dar funcțiile
standard I O funcționează pe orice dispozitiv.
Deci, se numește un pointer de fișier, dar într-adevăr poate fi un flux, într-adevăr ar trebui să
fie menționate la pointer flux.
Asociați un indicator de fișier cu un fișier programabil când programul dvs. este rulat.
Deci, ceea ce faceți în final este să creați un pointer în interiorul programului dvs.
Va fi de tip de fișier și asta va reprezenta fișierul când îl citești și îl vei scrie.
Utilizăm aceste cinci indicatori ca o modalitate mai eficientă de a puncta de fapt fișierele, spre deosebire de
numele de drept, deoarece numele poate fi puțin diferit.
Indicatorul va reprezenta ceea ce indică de fapt și puteți reutiliza indicii pentru
a indica diferite fișiere cu ocazii diferite.
Care din nou a fost reprezentat de numele fișierului.
Un pointer de fișier indică un struct de fișier de tip care reprezintă un flux.
De fapt, puteți să vă uitați la structul de fișiere pentru a vedea tot ce este în interiorul acestuia, dar
conține informații, cum ar fi dacă doriți să citiți sau să scrieți sau să actualizați fișierul.
Adresa tamponului din memoria în care stocați datele unui indicator la poziția curentă
din fișier pentru operația următoare.
Am menționat că poziția este importantă, pentru că aici îți faci drepturile și Rietz și
poți seta toate aceste informații în interiorul structurii folosind operațiile de intrare și ieșire ale fișierelor.
În regulă, operațiile fișierului de ieșire de intrare când deschideți un fișier.
De fapt, specificați dacă vreți să citiți sau să scrieți.
Și atunci și atunci când poți schimba poziția curentă folosind alte metode cum ar fi căutarea și așa mai
departe, despre care vom vorbi despre dacă doriți să utilizați mai multe fișiere simultan în programul dvs., trebuie să creați
un pointer de fișier separat pentru fiecare fișier.
Puteți refolosi pointerul de fișiere numai dacă dacă citiți și scrieți la momente diferite.
Există o limită a numărului de fișiere deschise pe care le puteți avea la un moment dat.
Puteți să vă uitați la limita din standard Știu că există o constantă definită Folman Max, totul depinde
din nou de sistemul de operare pe care îl executați, dar de obicei nu doriți să creați și să deschideți o
mulțime de fișiere simultan.
Scrierea și citirea fișierelor este o operație costisitoare deoarece scrieți pe hard disk.
Nu este la fel de rapid ca scrierea unei memorii, deci este nevoie de timp și poate provoca mai puțină reacție a programului dvs.
Deci, nu veți avea 10 fișiere deschise și nu veți scrie 10 fișiere în același timp cu Talban.
Acesta va fi primul pas pe care îl faceți înainte de a scrie chiar.
Deci, doriți să asociați un anumit nume de fișier extern cu un pointer final intern printr-un
proces numit deschiderea fișierului.
Modul în care deschideți un fișier și vedeți cum numiți funcția Alphen.
Acest lucru va returna pointerul de fișier pe care l-ați putea folosi apoi pentru citire și scriere.
Și din nou, pointerul de fișier va indica un fișier extern specific care se află
pe discul defect și va lua numele fișierului.
Defecțiunea este ceea ce veți face de obicei atunci când trebuie să faceți înainte de a face orice citire
scris este, de obicei prima dvs. operațiune și ca cu cele mai multe dintre aceste funcții acestea sunt toate definite în vârstă standard de bătrânețe.
Iată definiția formei și chemării.
Veți vedea că valoarea returnată este un pointer de fișier.
Toate capacele.
Structura fișierului.
Deci toate fișierele fac.
Veți observa apoi că este nevoie de câțiva parametri.
Este nevoie de un nume și un mod.
Nu vă faceți griji cu privire la acest lucru restricționați că sunt doar mai multe lucruri C 11.
Este într-adevăr nevoie de un pointer caracter la un nume și un mod.
Primul argument al funcției este un pointer la un șir care este numele fișierului.
Deci, asta va fi în interiorul citatelor duble.
Puteți specifica numele în mod explicit sau utilizați un pointer de caractere care conține adresa
șirului de caractere, așa că toate acestea spun că puteți crea un șir de caractere și introduceți un semn în
taxa literală și apoi treceți șirul în funcție.
Sau puteți pune în interiorul ghilimele duble chiar în interiorul apelului pentru funcții.
Puteți obține numele fișierului prin linia de comandă ca și intrare de la utilizator sau definiți-l ca
o constantă a programului dvs. depinde dacă este întotdeauna același fișier pe care îl citești scriind
și numele nu contează.
Puteți să vă referiți doar la o constantă Dacă programul dvs. este mai flexibil.
Poate primi informații de la utilizator pentru a spune la ce vrei să citești sau să scrie.
Al doilea argument pentru funcția deschis este un șir de caractere care reprezintă modul de fișier.
Aceasta specifică ce doriți să faceți cu fișierul dacă doriți să îl citiți dacă
doriți să îi scrieți dacă doriți să îl adăugați.
Urmați modul de lucru este un șir de caractere dintre dublurile de citate și vă
voi arăta câteva dintre cele care se vor sfârși prin a folosi o multitudine de presupuneri că apelul va deschide un succes va întoarce acel indicator al
fișierului.
Toate capacele și apoi puteți folosi acest pointer pentru a apela alte funcții de ieșire de intrare și antetul IO standard
și vom trece prin acestea atunci când vom trece prin citire și scriere.
Sau puteți obține și poziția utilizând acel indicator pentru a schimba poziția unde vă aflați în fișier dacă fișierul
nu poate fi deschis din anumite motive.
F open va reveni la NULL, deci ceea ce inseamna asta inainte de a incepe
sa faci orice citire sau scriere asigurati-va ca indicatorii nu sunt egali cu altii daca Chuck aici notele finale ca am mentionat formatele
de fisiere amintesc al doilea parametru la apelul jumatate deschis .
Aceasta este ceea ce specifică ceea ce doriți să faceți cu fișierul și este tot în interiorul ghilimele duble.
Deci, dacă faceți un W, înseamnă că doriți să deschideți fișierul text pentru scriere.
Dacă faceți într-un mod care înseamnă că puteți deschide fișierul text pentru un ban.
Toate drepturile sunt la sfârșitul dosarului.
Dacă faceți un R, acesta deschide fișierul text pentru citire.
Dacă adăugați un plus la oricare dintre acestea, va crea în principiu fișierul dacă nu există.
Deci, dacă deschideți un fișier W plus, acesta nu va permite actualizarea și va trunchia fișierul la zero dacă există
sau dacă creați un fișier nou care nu există cu celelalte.
Va merge bine sau va citi și fișierul trebuie să existe.
La fel cu A-plus.
Se va deschide suficient pentru a adăuga o actualizare la sfârșitul fișierului existent sau pentru a recrea fișierul dacă
acesta nu există și R plus nu va prelua fișierul text pentru actualizare.
Nu va crea fișierul acolo, deoarece va fi gol.
Așadar, lectura este doar pentru citire și scriere atunci când vedeți R plus un pic diferit de celelalte
locuri în care acestea generează de fapt un fișier care nu există.
Modul Dreapta dacă doriți să scrieți la un fișier text existent cu numele fișierului meu text pe care l-ați crea
pointer fișier.
Toate capacele sunt setate la cel puțin fără inițializare.
Și apoi ați putea crea fișierul dvs. ca un alt caracter pointer fișierul meu că impozitul.
Sau ai putea să treci asta ca primul parametru și apoi să spui că f este deschis pentru numele fișierului deschis și apoi
w în interiorul ghilimelelor duble.
Aceasta deschide un fișier pentru scriere și returnează un indicator de fișier.
De aceea ai peafowl în partea stângă a misiunii.
Apoi, doriți să verificați dacă fișierul nu este egal cu nulul, deoarece dacă nu este cazul
dacă nu se deschide din orice motiv, poate că numele fișierului a fost greșit sau nu exista și doriți să îl puteți
scrie.
Deci, întotdeauna doriți să faceți cecul și să tipăriți unele informații dacă nu deschide acest cod deschide
fișierul și va asocia fișierul cu numele fișierului meu că textul cu fișierul indicii
F-P fișier.
Cu cât W mai înseamnă că putem scrie numai în fișier.
Nu puteți citi de la el dacă un fișier cu numele fișierului meu textul nu există.
Apelul de a forma și va crea un nou fișier cu acest nume și care este deschis pentru opțiunea W cu dreptul.
Deci, când am văzut în modurile anterioare w Plus, vom crea fișierul pe care nu îl folosește, dar, de asemenea, trunchiază
fișierul la 0.
Aceasta este diferența cu W W va crea dacă nu există.
Dar nu va fi trunchiat la zero.
Deci, acesta este un mod standard de deschidere a fișierelor utilizând w în interiorul ghilimelelor duble.
Dacă furnizați doar numele fișierului fără caietul de sarcini, așa am făcut în acest exemplu.
O cale printr-un membru este numele directoarelor.
Dacă nu furnizați numele directoarelor, se presupune că acele
fișiere din directorul curent în care se execută programul Dacă doriți să deschideți un fișier în altă parte
unde este localizat în directorul programului, atunci trebuie să specificați întreaga cale.
Se numește calea absolută.
Când nu oferiți nici o cale, este de obicei calea relativă în raport cu locul în care rulează programul.
Deci, puteți specifica fie pe calea absolută, fie pe cea relativă.
Doar asigurați-vă că știți unde se află în cazul în care faceți ceea ce este corect, căile relative
sunt, de obicei, mai bune, deoarece atunci nu este dependentă.
Dacă cineva trebuia să mute acel fișier, nu depinde de locul unde a fost mutat și de fapt
poți să faci o cale relativă și poți să te întorci în directoare astfel încât să poți face un punct punct slash și
asta e relativ la locul unde rulează programul ești doar întorcând câteva directoare.
Când utilizați o cale absolută ar fi de fapt să vedeți fișierele de programe Kolin dacă sunteți
pe Windows.
Și dacă fișierul a trecut vreodată, programul nu ar fi putut să-l deschidă.
Deci, la deschiderea unui fișier pentru scrierea lungimii fișierului este trunchiat la zero și poziția va fi
la începutul oricăror date existente pentru prima operație.
Orice date care au fost anterior în fișier vor fi pierdute și ignorate de orice operații corecte.
O.K.
Deci, din nou, fără a oferi semnul plus, înseamnă că nu poți citi și scrie.
Acest lucru este valabil.
W are dreptul doar w plus înseamnă că poți citi și scrie appended dacă vrei să adaugi o adăugare existentă într-un fișier
text existent, decât să o suprascrieți.
Puteți specifica un mod.
Aceasta este adăugarea acestor poziții la un fișier la sfârșitul oricăror date scrise anterior.
Dacă fișierul nu există, creează unul nou.
Exemplul aici este doar schimbarea celui de-al doilea parametru pentru a fi un ghilimele duble pe partea ANE.
Acesta va adăuga la sfârșitul fișierului meu că textul și nu uitați că ar trebui să testați întotdeauna valoarea
de întoarcere pentru null de fiecare dată.
Întotdeauna doriți să faceți acest lucru dacă fișierul nu este egal cu nr.
Când deschideți un fișier și adăugați modul, toate operațiile corecte vor fi la sfârșitul
datelor, fișierul și fiecare operație de scriere.
Operațiile corecte adaugă datele fișierului și nu puteți actualiza conținutul existent în acest mod.
Totul este la sfârșit.
În modul de citire putem deschide fișierul pentru a citi un fișier.
Noi doar folosim ghilimele noastre interne.
Acest lucru este numai pentru citire.
Nu puteți scrie în fișier dacă faceți acest lucru.
În plus, veți putea să citiți și să scrieți.
Deci, se pare că celelalte apeluri pe care tocmai nu le-ați deschis.
Transmiterea numelui fișierului și apoi în ghilimele duble care returnează un pointer de fișier
laso poziționează fișierul la începutul datelor.
Dacă vrei să citești fișierul, trebuie să existe deja.
Nu veți citi un fișier gol, deci nu există nicio opțiune de a crea fișierul nu există.
Va fi doar gol sau veți reveni la punctul de fișier ar fi nul.
Încercați să deschideți un fișier pentru a citi că nu există.
Rotiți indicatorul nul.
Dacă acesta există și este gol, nu întoarceți niciun fel de date.
Întotdeauna doriți să verificați din nou valoarea retrasă din stânga deschisă pentru a doua oară.
Este important deoarece, dacă este un indicator nul, programul tău se va prăbuși în ceva care redenumirea unui fișier
știm acum cum să deschidem un fișier.
Deschiderea unui fișier este prima operațiune pe care o specificați modul și numele fișierului.
Asta vă dă înapoi punctul de fișier în care puteți acum utiliza pentru a face alte lucruri, cu redenumirea unui fișier,
uneori un porno este foarte ușor să utilizați doar funcția de redenumire.
Este nevoie de un nume ole și un nou nume este Consta caracter pointers și se întoarce un int.
Interesul Retur va fi zero.
Dacă schimbarea numelui a avut succes în non-zero, altfel fișierul nu trebuie să fie deschis când apelați redenumirea.
În caz contrar, va eșua, deoarece este în uz.
Nu puteți redenumi un fișier când acesta este în uz.
Deci, ce puteți face aici este că puteți spune că treciți redenumirea în vechiul nume de fișier în noul nume de fișier.
În acest exemplu, folosim o cale către un fișier în Windows și știți că este Windows, deoarece văd
Colan, de asemenea, observați că backslash există de două ori.
Motivul pentru aceasta este faptul că backslash-ul este un caracter special în C ..
Marginea spate dreapta și este un backslash linia de alimentare este un retur de transport.
Deci, partea din spate are un înțeles special în program, deci dacă doriți să utilizați efectiv reacția pentru
o cale într-un director care este ceea ce Windows trebuie să oferiți doi dintre ei.
Și așa că aici redenumim fișierul meu că taxa care caută în directorul temp redenumiți-o la fișierul meu subliniază
copiat text și temp director și dacă nu este egal cu unul, acesta va eșua.
Tocmai am imprima și o voi pune pe care spune că se simțea altfel aparent de succes.
Acest lucru va schimba numele taxei tatălui meu apoi directorul temp la fișierul meu copiați-l calea fișierului
este incorectă sau fișierul nu există.
Nu o să redenumească.
De asemenea, puteți închide fișierul și doriți să faceți acest lucru ori de câte ori deschideți un fișier.
Deci, când ați terminat cu fișierul însuși, doriți să îi spuneți sistemului de operare să elibereze acel fișier.
Rețineți că există o limită a numărului de fișiere pe care le puteți deschide la un moment dat.
Puteți face acest lucru prin apelarea funcției de închidere f închide acceptă partenerul de toamnă ca
membru al argumentului indicatorul fișierului reprezintă fișierul pe care îl returnează și fie vă râde, ca pe un int de pe care îl returnează
biroul.
Dacă apare o eroare.
Oprit este un caracter special numit caracterul sfârșitul fișierului definit în standard.
I Odon are fiecare un număr negativ, de obicei este echivalent cu unul negativ.
Dacă închiderea a fost de succes va reveni 0.
Deci, puteți să vă verificați pentru că nu ați reușit.
Vrei doar să spui că treci în pointer.
Apoi puteți seta pointerul acum și rezultatul pentru a apela f close este că conexiunea
dintre pointerul fișierului și fișierul fizic fișierele rupte nu mai poate fi folosit pentru a accesa
fișierul pentru citirea scrisului sau adăugarea sau redenumirea.
Dacă fișierul este scris în conținutul curent al tamponului de ieșire în fișier pentru a vă asigura că datele
nu sunt pierdute, astfel încât să nu aveți probleme cu integritatea datelor.
Nu veți închide fișierul în cazul în care acesta a fost scris într-un alt fir, deci este thread-ul în
siguranță.
Nu am vorbit despre firele cu un concept mai avansat, dar aici puteți avea mai multe puncte de
execuție în programul dvs.
Este o practică bună de programare pentru a închide un fișier de îndată ce ați terminat cu el.
La fel ca și practica de programare bună pentru a elibera memoria când ați terminat cu ea.
Același lucru pentru închiderea fișierelor.
Protejează împotriva pierderii datelor de ieșire.
De asemenea, trebuie să închideți un fișier înainte de a încerca să îl redenumiți sau să-l eliminați trebuie să fie aproape de Campi deschis.
Ce ziceți despre conducerea unui fișier.
Puteți șterge un fișier prin invocarea funcției de eliminare.
Acest lucru este, de asemenea, declarat în standardul IO care în vârstă toate operațiunile de fișiere sunt declararea standardelor
pe care le puteți merge doar uita-te la acest fișier antet dacă doriți oriunde sunt.
Fișierele C header sunt instalate.
Deci, spuneți că eliminați numele fișierului.
Aici nu trebuie să utilizați indicatorul de fișier.
Puteți spune doar pentru că un fișier nu trebuie să fie deschis pentru al elimina.
Același lucru cu dreptul de redenumire pentru că nu doriți ca fișierele să fie deschise, deoarece redenumirea
aplicației Remove va eșua.
Se va șterge fișierul care are numele fișierului meu text din directorul curent.
Aceasta oferă o cale relativă.
Se va căuta dosarul în care se execută programul.
În caz contrar, trebuie să oferiți o cale absolută, fișierul nu poate fi deschis când încercați să îl ștergeți.
La fel ca renumele.
Trebuie să verificați întotdeauna operațiile care șterg fișierele.
Ați putea distruge sistemul dacă nu ștergeți este o operație foarte periculoasă.
Ștergerea fișierelor poate cauza probleme, așa că aveți grijă.
Toate informațiile din această prelegere au avut legătură cu accesarea fișierelor.
Cum puteți deschide fișierele pe care trebuie să le faceți înainte de a citi și de a scrie și de
asemenea cum puteți șterge și redenumi fișierele și apoi închideți când ați terminat să le folosiți.
Totul se bazează pe fișierul POINAR.
Așa că am înțeles că pointer fișier în structura conține lucruri destul de util antetul IO
standard conține toate informațiile de mare.
Următoarele prelegeri de cuplu vom vorbi despre citirea și scrierea în fișierele text, care efectiv adaugă date sau
le ștergeau sau le-au eliminat sau le-au adăugat sau le-au citit.
Mulțumesc.
Acest lucru a fost de ajutor.