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 |