Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio16:esercitazionia:esercitazione1

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
informatica:sol:laboratorio16:esercitazionia:esercitazione1 [24/02/2016 alle 09:00 (9 anni fa)] Massimo Torquatiinformatica:sol:laboratorio16:esercitazionia:esercitazione1 [24/02/2016 alle 14:25 (9 anni fa)] (versione attuale) Massimo Torquati
Linea 1: Linea 1:
 ====== Esercitazione 1 ====== ====== Esercitazione 1 ======
  
-Illustrazione dei principali comandi emacs. Cenni a vi. Principali differenza tra ANSI C e C99. Illustrazione uso del debugger gdb su un semplice programma. Esercizio sul debugger gdb. +Illustrazione dei principali comandi emacs. Cenni a vi. Principali differenza tra ANSI C e C99. Illustrazione uso del debugger gdb su un semplice programma. Esercizio sul debugger gdb.  
    
  
Linea 20: Linea 20:
 </code> </code>
 inserire un breakpoint nel main ed eseguire il programma step-by-step. Identificato l'errore modificare il programma opportunamente. inserire un breakpoint nel main ed eseguire il programma step-by-step. Identificato l'errore modificare il programma opportunamente.
 +
 +Trovare il bug nel file ''findbug2.c'' (nello stesso tarball)
  
 ===== Esercizio 2 ===== ===== Esercizio 2 =====
  
-Non utilizzando la funzioni di libreria 'getopt' (man 3 getopt), scrivere un programma che effettua il parsing della linea di comando (argv) riconoscendo le seguenti opzioni:  +Scrivere un programma che stampa a video tutta la lista degli argomenti (argv) e tutte le variabili d'ambiente del programma (envp). Ricordare che una possibile segnatura della funzione main e'
-<code c+<code> 
--n <numero> -s <stringa> -m <altro-numero> -h. +int main(int argc, char *argv[], char *envp[]);
 </code> </code>
-Il programma dovrà stampare le opzioni riconosciute con il relativo argomento. L'opzione -h non ha argomento e corrisponde al messaggio di help (program usage). Se e' presente l'opzione -h dovra' essere stampato solo il messaggio di usage cioè: 
-<code c> 
-nome-programma -n <numero> -s <stringa> -m <numero> -h 
-</code> 
-Se ci sono opzioni non riconosciute queste dovranno essere stampate a video 
-con il messaggio "opzione X non riconosciuta". Per convertire le stringhe in interi usare la funzione 
-di libreria //atoi// (vedere man 3 atoi) o meglio ancora la funzione //strtol// (vedere man strtol).   
-Testare il programma con i seguenti casi (supponiamo che l'eseguibile si chiami cmdlineparsing): 
-<code c> 
-cmdlineparsing -n 10 -m 11 -s 'ciao mondo'  
-cmdlineparsing -n 10 -h     // deve stampare il messaggio di usage  
-cmdlineparsing -n 10 -k 12  // k e' una opzione non riconosciuta 
-cmdlineparsing ----n 10 -s-s 'ciao mondo'  // deve stampare -n: 10 e -s: -s 
-cmdlineparsing -n10 -m11 -s'ciao mondo'  // deve stampare gli argomenti come nel primo caso 
-cmdlineparsing -n -m 11   // deve stampare un messaggio di errore per -n 
-</code> 
- 
informatica/sol/laboratorio16/esercitazionia/esercitazione1.1456304407.txt.gz · Ultima modifica: 24/02/2016 alle 09:00 (9 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki