Prossima revisione | Revisione precedente |
informatica:sol:laboratorio17:esercitazionib:esercitazione11 [15/05/2017 alle 10:17 (8 anni fa)] – creata Massimo Torquati | informatica:sol:laboratorio17:esercitazionib:esercitazione11 [15/05/2017 alle 10:27 (8 anni fa)] (versione attuale) – Massimo Torquati |
---|
===== Esercizio 1 ===== | ===== Esercizio 1 ===== |
| |
Riconsiderare l'Esercizio 1 dell'[[informatica:sol:laboratorio17:esercitazionib:esercitazione10|]], introdurre nell'implementazione del server, la gestione dei segnali ''SIGINT'' e ''SIGQUIT'' in modo da lasciare il sistema in stato consistente (eliminare dal file system il socket AF_UNIX creato per accettare le connessioni). | Riconsiderare l'Esercizio 1 dell'[[informatica:sol:laboratorio17:esercitazionib:esercitazione10|]]. Introdurre nell'implementazione del server, la gestione dei segnali ''SIGINT'' e ''SIGQUIT'' in modo da lasciare il sistema in uno stato consistente dopo la sua terminazione (cioe' eliminare dal file system il socket AF_UNIX creato per accettare le connessioni ed eventualmente liberare la memoria allocata dinamicamente). |
| |
===== Esercizio 2 ===== | ===== Esercizio 2 ===== |
| |
Scrivere un programma C che propone a video una serie di tabelline (nella forma n*m=? -- con n ed m interi da 0 a 9). Il programma attende per ''sec'' secondi che venga data una risposta dall'utente. Se la risposta arriva entro i il timeout, stampa a video se il risultato fornito e' corretto o meno, | Scrivere un programma C che propone a video una serie di tabelline (nella forma n*m=? -- con n ed m interi da 0 a 9). Il programma attende per ''sec'' secondi che venga data una risposta dall'utente. Se la risposta arriva entro il timeout, stampa a video l'esito, altrimenti scrive sullo standard output il risultato corretto ed una stampa di tempo scaduto. Il programma prende in ingresso 2 parametri, il numero di domande che verranno proposte ed il timeout (in secondi). Alla fine vengono stampate |
altrimenti scrive che il risultato non e' arrivato in tempo utile. Il programma prende 2 parametri, il numero di domande che verranno proposte ed il timeout (in secondi). Alla fine vengono stampate | |
a video: la percentuale di risposte esatte ed il numero di volte in cui il timeout è scaduto. | a video: la percentuale di risposte esatte ed il numero di volte in cui il timeout è scaduto. |
| |
NOTA: per installare un timeout a ''sec'' secondi si puo' utilizzare la SC ''alarm''. Vedere ''man 2 alarm''. | NOTA: per installare un timeout di ''sec'' secondi si puo' utilizzare la SC ''alarm''. Vedere ''man 2 alarm''. |
| |
===== Esercizio 3 ===== | ===== Esercizio 3 ===== |
| |
Scrivere un programma C che conta il numero di volte in cui l'utente invia il segnale SIGINT (Ctl-C) al processo. Quando il processo riceve il segnale SIGTSTP (Ctl-Z), il numero di SIGINT ricevuti viene stampato sullo standard output. Al terzo segnale SIGTSTP, il processo chiede all'utente se deve terminare o no attendendo una risposta per 10 secondi. Se l'utente non risponde entro 10 secondi un segnale SIGALRM termina il processo. | Scrivere un programma C che conta il numero di volte in cui l'utente invia il segnale SIGINT (Ctl-C) al processo. Quando il processo riceve il segnale SIGTSTP (Ctl-Z), il numero di SIGINT ricevuti viene stampato sullo standard output. Al terzo segnale SIGTSTP, il processo chiede all'utente se deve terminare o no attendendo una risposta per 10 secondi. Se l'utente non risponde entro 10 secondi un segnale SIGALRM termina il processo. |