| Termín odevzdání | 25.03.2017 23:59 PDT 1) |
|---|---|
| Povinné zadání | 3b |
| Volitelné zadání | 4b |
| Bonusové zadání | není |
| Počet uploadů | 20 |
<string.h> (nebo podobné) napište program, který ze zadaného souboru FILE vypíše všechny řádky obsahující řetězec PATTERN.
./grep PATTERN FILE.
'\n' (a tento znak není povážován za součást řádku).
| 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 |
| 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 |
| 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 |
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á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 | |