Search
Předpokládáme, že máte základní znalosti jazyka C a jak funguje překlad ze zdrojových kódů jazyka C do binární spustitelné aplikace (v obecném případě kdy je zdrojových souborů více).
Dále byste měli mít alespoň minimální povědomí o použití překladače gcc a jeho základních parametrech (gcc).
Nastudujte si použití nástroje make pro překlad programu v jazyku C/C++: make
Dále je pro absolvování cvičení nutné mít přehled o systémových voláních fork, pipe, dup, open, kill, wait a exec, tzn. měli byste vědět jak vzniká nový proces a jak lze přesměrovat standardní vstup a výstup. Potřebné informace se dozvíte na některé z předchozích přednášek.
Vytvořte v jazyce C (nebo C++) program forkpipe, který:
forkpipe
fork
pipe
dup2
sleep(5)
SIGTERM
wait
rand()
printf(“%d %d\n”, rand(), rand())
sleep(1)
execl
nsd
Vytvořte Makefile, který:
Makefile
make
-Wall
man signal-safety
strace -f
-e process
-e file
-e trace=dup2
tar czf osy04.tgz Makefile *.[ch]
Zdrojové kódy aplikace nsd se skládají ze souborů nsd_main.c, nsd.c a nd.c a hlavičkových souborů nsd.h a nd.h. Jejich přeložením vytvoříte binární soubor 'nsd'.
Zdrojové soubory naleznete v archivu nsd.tgz
Pro další cvičení budete potřebovat vědět
Potřebné informace byste měli získat na přednáškách.