informatica:sol:laboratorio15:esercitazionia: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:laboratorio15:esercitazionia:esercitazione2 [04/03/2015 alle 14:21 (11 anni fa)] – [Esercizio 2: verificare gli accessi in memoria con ''valgrind''] Massimo Torquati | informatica:sol:laboratorio15:esercitazionia:esercitazione2 [17/03/2015 alle 05:44 (11 anni fa)] (versione attuale) – [Esercizio 6] Massimo Torquati | ||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| ====== Esercitazione 2 ====== | ====== Esercitazione 2 ====== | ||
| - | Ancora esercizi su C e su libreria standard di IO. Tool: mtrace e valgrind. | + | Ancora esercizi su C e su libreria standard di IO. Tools: '' |
| Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.\\ | Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.\\ | ||
| Linea 31: | Linea 31: | ||
| ===== Esercizio 2: verificare gli accessi in memoria con valgrind ===== | ===== Esercizio 2: verificare gli accessi in memoria con valgrind ===== | ||
| - | Verificare la correttezza degli accessi in memoria ........ | + | Verificare la correttezza degli accessi in memoria |
| + | Questo strumento permette fra l' | ||
| + | Per fare questo procedere come segue: | ||
| + | * compilare il file da verificare con opzione '' | ||
| + | * eseguire il programma con '' | ||
| + | < | ||
| + | bash$ valgrind ./prova | ||
| + | </ | ||
| + | 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 ===== | ===== Esercizio 3 ===== | ||
| + | |||
| + | Scrivere un programma che implementa l' | ||
| + | (mycat file1 [file2 ...] ). | ||
| + | |||
| ===== Esercizio 4 ===== | ===== Esercizio 4 ===== | ||
| + | Scrivere un programma che prende in ingresso un intero (piccolo, es. < | ||
| + | di 512x512 elementi '' | ||
| + | Inizializzare tale matrice (M) in modo arbitrario (ad esempio M(i,j) = (i+j)/ | ||
| + | Fare quindi il dump della matrice in formato binario su un file il cui nome è ' | ||
| + | Rileggere quindi la matrice dal file ' | ||
| + | da quella di partenza (M2). Al termine dell' | ||
| + | con la funzione di libreria '' | ||
| ===== Esercizio 5 ===== | ===== Esercizio 5 ===== | ||
| + | Scrivere un programma che prende in ingresso come parametro un nome di un file | ||
| + | (ad esempio input.txt). Il file è un file testuale che contiene un certo numero di righe. | ||
| + | Leggere tutte le righe del file e costruire un' | ||
| + | concatenazione di ogni striga del file tra loro separate da uno spazio. | ||
| + | Scrivere la stringa cosi ottenuta in un file che ha lo stesso nome del file in input ma con estensione " | ||
| ===== Esercizio 6 ===== | ===== Esercizio 6 ===== | ||
| + | Realizzare l' | ||
| + | array di N elementi con le seguenti modifiche/ | ||
| + | * gli elementi dell' | ||
| + | |||
| + | * le funzioni ' | ||
| + | |||
| + | Creare il codice oggetto dei due file ' | ||
| + | |||
| + | Un possibile file di input è il seguente:\\ | ||
| + | -1\\ | ||
| + | 2\\ | ||
| + | +3\\ | ||
| + | 0\\ | ||
| + | 120\\ | ||
| + | |||
| ===== Esercizio 7 ===== | ===== Esercizio 7 ===== | ||
| + | Scrivere un programma che realizzi l' | ||
| + | limitatamente alle opzioni -l e -w (man 1 wc). | ||
| + | L' | ||
| + | di parole nel file. 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 ....]). | ||
informatica/sol/laboratorio15/esercitazionia/esercitazione2.1425478885.txt.gz · Ultima modifica: 04/03/2015 alle 14:21 (11 anni fa) da Massimo Torquati
