A4B33OSS: Semestrální práce C1

Vytvoření knihovny a aplikace v jazyce C

Cílem této práce je pochopit fáze vytvoření a překladu programů v jazyce C v prostředí POSIX a vytvoření Makefile pro automatizované sestavení celého projektu.

a) Vytvoření knihovny

Napište Makefile, který vytvoří sdílenou knihovnu libnsd.so ze zdrojových kódů nsd.c, nsd.h, nd.c a nd.h. Hlavičkové soubory obsahují definici funkcí nsd - největší společný dělitel a funkce nd - největší dělitel.

b) Vytvoření aplikace

Vytvořte hlavní program, který bude využívat knihovnu libnsd.so. Program bude číst řádky ze standardního vstupu a na každém řádku bude očekávat dvě celá čísla oddělená mezerou. Na chybně zadaná vstupní data program upozorní výpisem hlášení na chybový výstup. Pokud uživatel zadá dvě prvočísla, vypíše program řetězec "prime" (zakončený znakem konce řádku). V ostatních případech vypíše nalezený největší společný dělitel obou čísel (pouze číslo a konec řádky). Program bude číst a zpracovávat vstup, dokud nedojde k jeho uzavření (např. konec souboru přesměrovaného na vstup). Před svým ukončením vypíše program řetězec "DONE" na chybový výstup.

Důkladně si aplikaci otestestujte! Vyzkoušejte všechny možné kombinace vstupních hodnot (těch zajímavých není až tak moc). Odevzdávací systém vám neřekne na jakých vstupech test selhal.

Vytvořte Makefile, který bude mít minimálně tři následující targety:

přičemž target all bude implicitní (pokud bude make spuštěn bez parametru).

Makefile napište tak, aby se vždy překládalo jen to, co je potřeba (změněné zdrojové soubory).

Úloha bude kontrolována automaticky, což znamená že musíte dodržet výstupní formát i názvy targetů v makefile, jinak nebude úloha přijata.

Na server s odevzdávacím systémem cw.felk.cvut.cz/upload/ nahrávejte zip soubor obsahující pouze zdrojové soubory (.h a .c, včetně souborů nsd.h, nsd.c, nd.h a nd.c) a Makefile.