Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio20:esercitazionib:esercitazione4

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:laboratorio20:esercitazionib:esercitazione4 [06/03/2020 alle 15:11 (5 anni fa)] Massimo Torquatiinformatica:sol:laboratorio20:esercitazionib:esercitazione4 [07/03/2020 alle 15:13 (5 anni fa)] (versione attuale) – [Esercizio 2] Massimo Torquati
Linea 3: Linea 3:
 ===== Esercizio 1 ===== ===== Esercizio 1 =====
 Scrivere un programma C che legge il file "/etc/passwd" e scrive in un file testuale la lista dei 'login name' del sistema, uno per riga. Il nome del file testuale di output viene passato come unico argomento al programma. Il formato del file passwd è descritto in ''man 5 passwd'':  "/etc/passwd contains one line for each user account, with seven fields delimited by colons (“:”)." Il primo campo è il 'login name' Scrivere un programma C che legge il file "/etc/passwd" e scrive in un file testuale la lista dei 'login name' del sistema, uno per riga. Il nome del file testuale di output viene passato come unico argomento al programma. Il formato del file passwd è descritto in ''man 5 passwd'':  "/etc/passwd contains one line for each user account, with seven fields delimited by colons (“:”)." Il primo campo è il 'login name'
 +Suggerimento: usare ''fgets'' per leggere le righe del file; usare ''strchr'' per trovare caratteri in una stringa.
  
 ===== Esercizio 2 ===== ===== Esercizio 2 =====
Linea 10: Linea 11:
  
 Scrivere un secondo programma (oppure estendere quello precedente) che prende in ingresso i nomi dei due file creati in precedenza e l'intero 'N', legge la matrice sia dal file 'mat_dump.dat' che dal file 'mat_dump.txt' memorizzandone il contenuto in due matrici distinte. Al termine dell'operazione di lettura, effettua il confronto delle due matrici con la funzione 'confronta' che deve essere implementata in modo "generico" cioe' deve prendere come argomenti un puntatore a funzione con tipo opportuno, i puntatori alle due matrici da confrontare e la size delle matrici. Il programma deve stampare l'esito del confronto.  Scrivere un secondo programma (oppure estendere quello precedente) che prende in ingresso i nomi dei due file creati in precedenza e l'intero 'N', legge la matrice sia dal file 'mat_dump.dat' che dal file 'mat_dump.txt' memorizzandone il contenuto in due matrici distinte. Al termine dell'operazione di lettura, effettua il confronto delle due matrici con la funzione 'confronta' che deve essere implementata in modo "generico" cioe' deve prendere come argomenti un puntatore a funzione con tipo opportuno, i puntatori alle due matrici da confrontare e la size delle matrici. Il programma deve stampare l'esito del confronto. 
-Testare il programma passando alla funzione 'confronta' la funzione di libreria ''memcmp'' (man 3 'memcmp').+Testare il programma passando alla funzione 'confronta' la funzione di libreria ''memcmp'' (''man 3 memcmp'').
  
-Notare la differenza di size tra 'mat_dump.dat' e 'mat_dump.txt'.+Notare la differenza di size tra 'mat_dump.dat' e 'mat_dump.txt'.\\ 
 +NOTA: per leggere e scriver un file binario utilizzare rispettivamente ''fread'' ed ''fwrite''. Per scrivere il file testuale usare la chiamata ''fprintf''.
  
 ===== Esercizio 3 ===== ===== Esercizio 3 =====
Linea 20: Linea 22:
 Se non vengono passate opzioni, il programma stampa sia il numero 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  di linee che il numero di parole del/dei file i cui nomi sono passati come argomento 
-(mywc [-l -w] file1 [file2 file3 ....]).+(mywc [-l -w] file1 [file2 file3 ....]).\\ 
 +Suggerimento: scrivere una funzione che conta le parole in una stringa utilizzando le funzioni di utilità della libreria standard come ''isspace'', ''iscntrl'' (''man 3 isspace'').
  
  
informatica/sol/laboratorio20/esercitazionib/esercitazione4.1583507491.txt.gz · Ultima modifica: 06/03/2020 alle 15:11 (5 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki