Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

public:zap4 [2018/02/24 19:10] (aktuální)
Řádek 1: Řádek 1:
 +==== PB071 - nalezení souborů v adresáři (17.5.) =====
 +Program dostane na příkazové řádce cestu k adresáři, ve kterém bude hledat soubory se jménem ve tvaru secretXX.txt,​ kde XX je číslo v rozmězí 00-99. Program zjistí, který z těchto souborů je v adresáři přítomný (lze i s funkcemi ze standardní knihovny, neuvažujte uzamčené soubory apod.), zjistí jejich velikost a uloží si ji do dynamicky alokovaného seznamu, který bude obsahovat vždy dvojici [cesta,​velikost]. Před ukončením programu se obsah seznamu vypíše do výstupního souboru se jménem //​files.txt//​. ​  
 +
 +  * program obdrží na příkazovém řádku jeden argument (cesta k adresáři)
 +  * pokud nedostane žádný argument, tak vypíše nápovědu a skončí
 +  * program se tedy spouští např. jako '​./​program adresar_cesta'​
 +  * pro každý soubor, který existuje zjistí program jeho velikost (např. pomocí funkcí fseek a ftell) ​
 +  * program použije pro uchování dvojice jméno souboru a velikost souboru vhodně deklarovanou strukturu struct
 +  * pole struktur bude dynamicky alokované s velikostí odpovídající počtu nalezených souborů
 +  * po obsloužení všech souborů projde dynamicky alokovanou strukturu a vypíše její obsah do souboru //​files.txt//​ ve formátu //​jmeno_souboru = velikost_souboru//,​ každý záznam bude na samostatném řádku
 +  * zdrojový kód bude dodržovat dobré programovací návyky, nebude obsahovat memory leaks ani neuzavřené soubory
 +  * program nebude vytvářet přehnaně veliká pole struktur, která nebudou využita (tj. alokujete jen tolik, kolik budete využívat)
 +  * program by neměl spadnout na Segmentation fault v případě že by byl spuštěn bez parametrů nebo pokud by se nepodařilo najít vstupní soubor
 +  * při vypracování příkladu můžete používat své vlastní kódy a dokumentaci nalezenou na internetu. Není povoleno spolupracovat s někým dalším
 + 
 +Předpokládejme,​ že existují soubory soubor13 (100B), soubor31 (existuje, ale 0B) a soubor04 (50B). ​
 +
 +Výstup programu (v souboru files.txt) spuštěného jako '​./​program adresar'​ může vypadat takto (výstup nemusí být nijak řazen):
 +
 +    adresar\soubor13 = 100
 +    adresar\soubor31 = 0
 +    adresar\soubor04 = 50
  
QR Code
QR Code public:zap4 (generated for current page)