informatica:sol:laboratorio:esercitazioni:esercitazione2
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| informatica:sol:laboratorio:esercitazioni:esercitazione2 [03/03/2010 alle 15:35 (16 anni fa)] – Susanna Pelagatti | informatica:sol:laboratorio:esercitazioni:esercitazione2 [10/03/2010 alle 11:35 (16 anni fa)] (versione attuale) – Susanna Pelagatti | ||
|---|---|---|---|
| Linea 11: | Linea 11: | ||
| Per fare questo procedere come segue: | Per fare questo procedere come segue: | ||
| * leggere le informazioni in '' | * leggere le informazioni in '' | ||
| + | * includere l' | ||
| * inserire la chiamata alla funzione di libreria mtrace() all' | * inserire la chiamata alla funzione di libreria mtrace() all' | ||
| - | * inserire la chiamata alla funzione di libreria | + | * inserire la chiamata alla funzione di libreria |
| * compilare il file da verificare con opzione '' | * compilare il file da verificare con opzione '' | ||
| < | < | ||
| - | bash$ gcc -Wall -pedantic -g -o prova main.c | + | bash$ gcc -Wall -pedantic -g -o prova main.c |
| </ | </ | ||
| * settare la variabile di ambiente '' | * settare la variabile di ambiente '' | ||
| Linea 47: | Linea 48: | ||
| </ | </ | ||
| in questo modo, a schermo verranno riportare le infrazioni rilevate. Ad esempio, //invalid read// o //invalid write// sono accessi in lettura o scrittura a memoria non allocata o gia' deallocata. | in questo modo, a schermo verranno riportare le infrazioni rilevate. Ad esempio, //invalid read// o //invalid write// sono accessi in lettura o scrittura a memoria non allocata o gia' deallocata. | ||
| + | |||
| + | |||
| + | ===== Esercizio 3: lettura-scrittura su file con stdio ===== | ||
| + | |||
| + | Scrivere un programma C che legge una sequenza di studenti da file '' | ||
| + | Ogni studente e' memorizzato su file in una singola linea contenente tre stringhe di caratteri separate da ':' | ||
| + | < | ||
| + | cognome: | ||
| + | </ | ||
| + | quindi ad esempio | ||
| + | < | ||
| + | ... | ||
| + | Rossi: | ||
| + | Bixio: | ||
| + | Garibaldi Giuseppe 787899 | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | Il programma memorizza i dati relativi a ciascun studente in un array di strutture di tipo studente opportunamente definito e li stampa in ordine alfabetico. | ||
| + | |||
| + | Suggerimento: | ||
| + | |||
| + | ===== Esercizio 4: lettura-scrittura su file passato come argomento ===== | ||
| + | |||
| + | In C e' possibile accedere agli argomenti passati sulla linea di comando tramite la struttura '' | ||
| + | <code c> | ||
| + | int main (int argc, char* argv[]) { | ||
| + | ... | ||
| + | } | ||
| + | </ | ||
| + | in questo modo '' | ||
| + | < | ||
| + | bash$ ./prova pippo pluto paperone | ||
| + | </ | ||
| + | '' | ||
| + | |||
| + | Si chiedere di modificare l' | ||
| + | < | ||
| + | bash$ leggistud nome_file | ||
| + | </ | ||
| + | che ordina gli studenti contenuti nel file '' | ||
| + | |||
| + | ===== Esercizio 5: Manipolare '' | ||
| + | |||
| + | In C, la maggiorn parte delle funzioni di libreria che segnalano un errore settano anche la variabile globale '' | ||
| + | < | ||
| + | bash$ man errno | ||
| + | </ | ||
| + | Dopo l' | ||
| + | E' possibile manipolare '' | ||
| + | <code c> | ||
| + | #include < | ||
| + | </ | ||
| + | |||
| + | L' | ||
informatica/sol/laboratorio/esercitazioni/esercitazione2.1267630545.txt.gz · Ultima modifica: 03/03/2010 alle 15:35 (16 anni fa) da Susanna Pelagatti
