A C programozási nyelv VI. Parancssori argumentumok File kezelés



Hasonló dokumentumok
A C programozási nyelv VI. Parancssori argumentumok File kezelés

Programozás I gyakorlat

Programozás 6. Dr. Iványi Péter

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat

Osztály szint tagok. Krizsán Zoltán 1 [2012. március 12.] Objektumorientált programozás C# alapokon tananyag

Programozás II. Fájlkezelés

Számítástechnika I. BMEKOKAA előadás Mutatók, File Kezelés. Dr. Bécsi Tamás

Országzászlók (2015. május 27., Sz14)

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

ADATBÁZIS ALAPÚ RENDSZEREK

Minta programterv a 1. házi feladathoz

Adatok ábrázolása, adattípusok. Összefoglalás

Programozás alapjai 1. (BMEVIEEA100)

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include

7. gyakorlat Sorozatok, Fájlkezelés

Programozás alapjai C nyelv 11. gyakorlat. Preprocesszor. Makrók (#define)

Fordítóprogramok Készítette: Nagy Krisztián

Adatbázisrendszerek I. Fájlszintű adattárolás C-ben

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

A C programozási nyelv III. Pointerek és tömbök.

Ablakok használata. 1. ábra Programablak

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

MATLAB. 4. gyakorlat. Lineáris egyenletrendszerek, leképezések

Szövegek C++ -ban, a string osztály

IDE64 dokumentáció. A merevlemez előkészítése az első használatra. 1. Előkészítés. 2. Csatlakoztatás. 3. Segédprogram másolás

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

Adatbázisrendszerek I. File-szintű adattárolás C-ben. 1. gyakorlat

Programozás I. 5. Előadás: Függvények

DLookup függvény 1. (5)

A C programozási nyelv III. Pointerek és tömbök.

main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main

Kivétel kezelés. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Dr. Schuster György február 21. Real-time operációs rendszerek RTOS

Lineáris algebra gyakorlat

Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE

3. Gyakorlat Ismerkedés a Java nyelvvel

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Digitális technika (VIMIAA01) Laboratórium 1

Bevezetés a lágy számítás módszereibe

Kivételkezelés a C++ nyelvben Bevezetés

INFORMATIKAI ALAPISMERETEK

Java programozási nyelv 10. rész Input/output kezelés

HÁLÓZATSEMLEGESSÉG - EGYSÉGES INTERNET SZOLGÁLTATÁS-LEÍRÓ TÁBLÁZAT

Összeszerelési és kezelési útmutató. Standard hallgatóval típusú lakásállomás

Programozás C++ -ban 2007/4

1. Alapok. Programozás II

Párhuzamos programozás

A táblázatkezelő felépítése

Mikrokontrollerek. Tihanyi Attila május 8

A héj vezérlő szerkezetei I.

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Dinamikus memóriakezelés Fájlkezelés

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

EPER E-KATA integráció

Accorde Alapkezelő Zrt. Accorde Prémium Alapok Alapja Befektetési Alap I. Féléves jelentés

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

TART TECH KFT Csénye, Sport u. 26. Tel.: 95/ Fax: 95/ Mobil: 30/

Reiz Beáta április

Gépi forgácsoló Gépi forgácsoló

Fábián Zoltán Hálózatok elmélet

0.1. Mi az a standard be- és kimenet? A két mintafeladat leírása

Shared IMAP beállítása magyar nyelvű webmailes felületen

Az első lépések. A Start menüből válasszuk ki a Minden program parancsot. A megjelenő listában kattintsunk rá az indítandó program nevére.

Vodafone ReadyPay. Használati útmutató

Példák tematikus csoportosításban

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M)

Tartalom. 1. A dokumentum célja... 2

Bevezetés a C++ programozásba

A Budavár Tours ajándékutalvány megvételének szabályzata

Egységes Mezőgazdasági Ügyfél-nyilvántartási Rendszer. Kérjük, a kérelmet olvashatóan, nyomtatott nagy betűkkel töltse ki! I. rész: Azonosító adatok

CONCORDE-VM ABSZOLÚT SZÁRMAZTATOTT BEFEKTETÉSI ALAP

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Egységes és objektumközpontú adatbázis-kezelés (2. rész)

Programozás 5. Dr. Iványi Péter

Lemezkezelés, RAID, partícionálás, formázás, defragmentálás.

Féléves jelentés GENERALI HAZAI KÖTVÉNY ALAP

Érettségi feladatok Algoritmusok egydimenziós tömbökkel (vektorokkal) 1/6. Alapműveletek

E-ADÓ RENSZER HASZNÁLATI ÚTMUTATÓ

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Műszaki ábrázolás II. 3. Házi feladat. Hegesztett szerkezet

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Felhasználói Kézikönyv Kisbanki NetBOSS - IVR

ADATBÁZIS-KEZELÉS. Funkcionális függés, normál formák

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

HENYIR felhasználói dokumentáció

Árverés kezelés ECP WEBSHOP BEÉPÜLŐ MODUL ÁRVERÉS KEZELŐ KIEGÉSZÍTÉS. v ECP WEBSHOP V1.8 WEBÁRUHÁZ MODULHOZ

I. Internet Bank forint eseti átutalási megbízásokhoz használt import adatállomány szerkezete

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

C programnyelv 1. Kedves Kollegina, Kolléga!

Átírás:

A C programozási nyelv VI. Parancssori argumentumok File kezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv VI. (Parancssori argumentum, file kezelés) CBEV6 / 1

Parancssori argumentumok 1. A programot parancssorból indítva adatokat adhatunk meg számára. Amain függvény prototípusának teljes alakja int main(int argc, char* argv[], char* env[]) Amain függvény visszatérési értékét az aktivizáló program kapja meg. 0 visszaadott érték: sikeres végrehajtás A visszatérési értéket a main függvény return utasítása, vagy bárhol az exit függvény állíthatja be. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 2

Parancssori argumentumok 2. Azexit függvényhez az stdlib.h vagy process.h fejlécfile szükséges. Prototípusa: void exit(int status) Amain függvény elsÿ két paramétere a program aktivizálásához használt parancssorban található paramétereket adja vissza A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 3

Parancssori argumentumok 3. argc a paraméterek száma + 1 argv[0] a parancssorban a prompt után gépelt elsÿ stringre (a program neve, esetleg elérési úttal) mutató pointer argv[1] az elsÿ paraméterre mutató pointer.. argv[argc-1] az utolsó paraméterre mutató pointer argv[argc] a NULL mutató A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 4

Parancssori argumentumok 4. Hasonlóan az env[0], env[1],..., env[n-1] a program hívásakor érvényes környezeti változókat tartalmazzák, (ahol n a környezeti változók száma), env[n]=null. A környezeti változók operációs rendszer függÿk! A parancssor paramétereit helyköz választja el. Ha egy paraméterben helyköz lenne, azt idézÿjelek közé kell írni. (A program az idézÿjelet nem kapja meg!) A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 5

File a C nyelvben A C byte-ok sorozataként tekinti a file-okat. A programozó feladata a file tartalmát értelmezni. Kivétel: ha a file-t text típusúnak deklaráljuk '\n' ("sorvég") karakter kiírása az operációs rendszertÿlfüggÿ sor vége jelet generál sor vége jel beolvasása a '\n' karaktert eredményezi A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 6

File megnyitása Minden file-t egy FILE (elÿredefiniált) típusú struktúra azonosít. Van három elÿre definiált FILE* változó: stdin : standard input stdout: standard output stderr: standard hibacsatorna Minden file-t a használata elÿtt meg kell nyitni. Ezzel kapunk egy egyedi azonosítót, amellyel a késÿbbiekben hivatkozunk rá. (fopen függvény) A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 7

Az fopen függvény 1. Prototípusa: FILE* fopen(char* filenev, char* mod) filenév paraméter a file neve (az adott operációs rendszer szabályai szerint) mod egy, két vagy három karakteres string, amely meghatározza a file használatának a módját, az alábbiak szerint: A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 8

Az fopen függvény 2. Mód Használat módja A megnevezett file-lal való kapcsolat jele r Csak olvasásra Léteznie kell! w Csak írásra Ha létezik, elÿzÿ tartalma elvész, ha nemlétezik, létrejön egy új (üres) file. a Hozzáírás Ha létezik, az írás az elÿzÿ tartalomvégétól kezdÿdik. Ha nemlétezik, létrejön egy új file. r+ Olvasás és írás Léteznie kell! w+ Olvasás és írás Ha létezik, elÿzÿ tartalma elvész, ha nemlétezik, létrejön egy új (üres) file. a+ Olvasás és hozzáírás Ha létezik, az írás az elÿzÿ tartalomvégétÿl kezdÿdik. Ha nemlétezik, létrejön egy új file. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 9

Az fopen függvény 3. A függvény visszatérési értéke a file leíró struktúrára mutató pointer, ha a megnyitás sikeres, a NULL pointer egyébként. Szokásos használata: FILE* be;... if ((be=fopen("bemeno.txt","rt"))==null) { fprintf (stderr,"nyitási hiba!\n"); exit(1); /* A program befejezése */ } else { /* A file feldolgozása */ } A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 10

A file lezárása 1. Minden file-t a használata után le kell zárni. Erre szolgál az int fclose(file* f) paramétere a lezárandó file leírója visszatérési értéke 0 sikeres lezárásnál, EOF egyébként A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 11

A file lezárása 2. Megjegyzések: A file lezárása után az azonosítására használt változó újra felhasználható. Afÿprogram (main függvény) végén minden nyitott file automatikusan lezáródik, mielÿtt a program befejezi a futását. A file lezárása elÿtt a nem üres buffer is kiíródik a file-ba. Ha a program futása rendellenesen áll le, adatok veszhetnek el. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 12

File írása és olvasása 1. int fprintf(file* f, char*s,... ) Mintaprintf,csak az f file-ba ír ki. int fscanf(file* f, char*s,... ) Mintascanf,csak az f file-ból olvas. int getc(file* f) Mintagetchar, csakazf file-ból olvas. int putc(char c, FILE* f) Kiírja a c karaktert az f file-ba. Visszatérési értéke a kiírt karakter, hiba esetén EOF. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 13

File írása és olvasása 2. int fputs(char*s, FILE* f) Kiírja az s stringet, a záró nulla nélkül. Visszatérés: az utoljára kiírt karakter, vagy EOF. char* fgets(char*s, int n, FILE* f) Beolvas az s stringbe a sorvége karakterig, de maximum n-1 karaktert. A string végére teszi a záró nulla karaktert. Visszatérési értéke a beolvasott stringre mutató pointer, vagy NULL. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 14

File írása és olvasása 3. int fread(void* p, int meret, int n, FILE* f) A függvény n db, meret méret adatot olvas be, és elhelyezi azokat a p címtÿl kezdÿdÿen. Ap tetszÿleges objektumot megcímezhet. A programozó felelÿssége, hogy a memóriaterület elegendÿ hosszúságú-e a feltöltött memóriaterület értelmezhetÿ-e. Visszatérési értéke a beolvasott adatok száma. Hiba vagy file vége esetén ez n-tÿl kisebb. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 15

File írása és olvasása 4. int fwrite(void*p, int meret, int n, FILE* f) Mint az fread,dekiír. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 16

Pozicionálás a file-ban 1. Minden file-hoz tartozik egy aktuális pozíció, amit byte-ban számítunk. Egy file megnyitása után az aktuális pozíció 0, azaz a file elejére mutat. A végrehajtott írási és olvasási m veletek az aktuális pozíciót is állítják, az átvitt byte-ok számának megfelelÿen. Az aktuális pozíciót a programból is állíthatjuk (a file tetszÿleges sorrendben feldolgozható) A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 17

Pozicionálás a file-ban 2. int fseek(file* f, long offset, int bazis) Hozzáadja (elÿjelesen!) az offset értékét a bazis által meghatározott értékhez, és ez lesz az új aktuális pozíció. bazis lehetséges értékei (elÿredef. konstansok): SEEK_SET a file eleje SEEK_CUR az aktuális file pozíció SEEK_END a file vége Visszatérési értéke 0, ha sikeres, nem 0 egyébként. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 18

Pozicionálás a file-ban 3. long ftell(file* f) Visszaadja az aktuális file pozíció értékét, a file elejétÿl számolva. Sikertelenség esetén a visszatérési érték -1. void rewind(file* f) A file elejére állítja a file pozíciót. A C programozási nyelv VI. (Parancssori argumentum, file kezelés CBEV56/ 19