Création d'un analyseur lexical, syntaxique puis
sémantique pour ensuite faire un compilateur qui
génère un fichier de codes executable grâce à
une machine virtuelle.
Voici quelques petits exercices permettant de prendre en mains la
communication unix et réseaux entre processus.
- Nombre max de fils simultanés
(simulfils.c)
-> fork(), sleep()
- Comptes à rebours et comptage de fils
(rebourfils.c)
-> fork(), wait(), sleep()
- Auto-recouvrement
(autorec.c)
-> execlp()
- Changement de PID / reception de signaux
(changepid.c)
-> fork(), sleep(), getpid(), sigaction()
- Redirection de plusieurs tubes
(redir2tub.c)
-> fork(), pipe(), dup(), close(), execlp()
- Taux de transmission dans un tube
(debitub.c)
-> fork(), sigaction(), read(), write(), pipe(), close()
- Taux de transmission avec plusieurs tubes/Scrutation
(debitntub.c)
-> fork(), sigaction(), read(), write(), pipe(), close(),
select()
- Traducteur avec 2 tubes
(tradu2tub.c)
-> fork(), sigaction(), read(), write(), pipe(), close(), dup(),
select(), execlp()
- Tube nomme (M et Mme ont un fils)
(mEtMme-serv.c,
mEtMme-cli.c)
-> fork(), read(),
write(), mkfifo(), open(), close(), unlink()
- Client/Serveur UDP
(client-serveur_UDP.tar.gz)
-> socket(), bind(), sigaction(),
sendto(), recvfrom(), close(), unlink()
- Echo de nombres pairs TCP/UN avec scrutation
(scrutpair.tar.gz)
-> socket(), bind(),
sigaction(), listen(), select(), read(), write(), close(), unlink()
- Aspirateur Web en TCP/IP
(aspiweb.tar.gz)
-> socket(), bind(),
connect(), write(), read(), close()
- Serveur Web (HTTP/TCP/IP)
(webserv.tar.gz)
-> socket(), bind(),
sigaction(), listen(), select(), accept(), write(), read(), close(),
ntohs(), ntohl()