{{indexmenu_n>4}}
======== HW 04 - Hledání textu v souborech ========
^ Termín odevzdání | 25.03.2017 23:59 PDT (([[https://www.timeanddate.com/time/zones/pst|PDT]]))|
^ Povinné zadání | 3b |
^ Volitelné zadání | 4b|
^ Bonusové zadání | není |
^ Počet uploadů | 20 |
====== Povinné zadání ======
* Bez použití knihovny '''' (nebo podobné) napište program, který ze zadaného souboru ''FILE'' vypíše všechny řádky obsahující řetězec ''PATTERN''.
* následně volán s argumenty ''./grep PATTERN FILE''.
* Za konec řádku je považován znak '''\n''' (a tento znak není povážován za součást řádku).
/* Program implementujte v souboru ''grep.c'', který bude kompilován jako
gcc grep.c -Wall -Werror -pedantic -g -std=c99 -o grep
*/
==== Příklad 1 ====
^ ^ Očekávaný výstup ^ Očekávaný chybový výstup ^ Návratová hodnota ^
| $ ./grep "string.h" grep.c
# kde grep.c je váš zdrojový soubor
| žádný | žádný | 0 |
==== Příklad 2 ====
^ PATTERN ^ Vstupní soubor ^ Očekávaný výstup ^ Očekávaný chybový výstup ^ Návratová hodnota ^
|
vzor
|
Tady je jeden vzor. A jeste jeden vzor.
A tady neni zadny.
|
Tady je jeden vzor. A jeste jeden vzor.
| žádný | 0 |
==== Příklad 3 ====
^ PATTERN ^ Vstupní soubor ^ Očekávaný výstup ^ Očekávaný chybový výstup ^ Návratová hodnota ^
|
Vzor
|
Tady je jeden vzor. A jeste jeden vzor.
A tady neni zadny.
| žádný | žádný | 0 |
====== Volitené zadání ======
Volitelné zadání rozšiřuje povinné zadání o precizované ošetření možných vstupů. Proto
v případě jakékoli chyby vypište smysluplný důvod chyby na standardní chybový výstup a program bude ukončen s definovanou nenulovou návratovou hodnotou.
Chyby, které byste měli detekovat, jsou uvedeny v následující tabulce.
Chyby se musí vyhodnocovat v níže uvedeném pořadí. To znamená, že pokud se program zavolá jako ./grep ''
pak program vyhodnoti chybu podle prvního řádku a skončí (nikoli podle druhého řádku).
^ Chyba ^ Očekávaný chybový výstup ^ Návratová hodnota ^
| Nejsou uvedeny oba arumenty | Error: Chybejici argument(y).
| 100 |
| Argument PATTERN je prázdný. Můžete otestovat: ./grep '' soubor.c
| Error: Prazdny PATTERN.
| 101 |
| Neexistující vstupní soubor. | Error: Soubor nelze otevrit.
| 102 |
| Nepodařilo se dynamicky alokovat paměť. | Error: Alokace pameti selhala.
| 200 |
====== Odevzdávané soubory a kompilace ======
/*
Odevzdávejte soubory *.h a *.c. Pouze soubor ''grep.c'' může obsahovat funkci ''main()'', program však může být složen z více souborů. Všechny soubory uložte přímo do zip archivu a **nevytvářejte žádné složky**.
**Povinné soubory**:
*/
Odevzdávejte pouze jeden soubor:
* ''grep.c'' - implementace jednoduchého programu pro hledání řetězce v textových souborech (obsahuje funkci main)
^ ^ Povinné zadání ^ Volitelné zadání ^
^ Název v BRUTE | HW04 ||
^ Kompilace pomocí | gcc -std=c99 -Werror -Wall -pedantic ||