Questa è una vecchia versione del documento!
Indice
Esercitazione 3
Stringhe e libreria standard di IO, creazione di librerie statiche, macros, extern
e static
.
Esercizio 1: my word count
Scrivere un programma che realizzi l'equivalente del comando Unix wc
limitatamente alle opzioni -l e -w (man 1 wc). Usare getopt
per il parsing degli argomenti (man 3 getopt).
Se non vengono passate opzioni, il programma stampa sia il numero
di linee che il numero di parole del/dei file i cui nomi sono passati come argomento
(mywc [-l -w] file1 [file2 file3 ….]).
Esercizio 2: controllo di errori
Scrivere una funzione macro 'CHECK_CALL_PTR' che prende due argomenti, un puntatore ed una stringa, e stampa utilizzando perror
l'errno
e la stringa passata come argomento prima di uscire dal programma con EXIT_FAILURE
. Esempio di utilizzo:
FILE *fp; CHECK_CALL_PTR(fp=fopen("fileprova.txt", "r"), opening fileprova.txt);
Se il file 'fileprova.txt' non esiste il risultato sarà:
opening fileprova.txt: No such file or directory
Stampare il valore di ritorno di un programma che testa la macro 'CHECK_CALL_PTR' sia in caso di successo che di fallimento (ricordare che il valore di ritorno dell'ultimo comando bash eseguito si può avere accedendo alla variabile di ambiente bash ?
).