18.08.2013 Views

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

• nelem numero di dati da trattare<br />

• f è il puntatore a FILE che identifica il file in cui scrivere (leggere)<br />

Il programma seguente effettua la copia un file binario di interi.<br />

/*<br />

* copia un file binario di interi<br />

*<br />

* i file binari non sono leggibili correttamente<br />

* con editor classici e comandi come cat, more ...<br />

*/<br />

#include <br />

int main(int argc, char ** argv)<br />

{<br />

int buf[1024];<br />

int n;<br />

FILE *fin, *fout;<br />

}<br />

if (!(fin = fopen(argv[1], "r"))) {<br />

<strong>per</strong>ror(argv[1]);<br />

exit(1);<br />

}<br />

if (!(fout = fopen(argv[2], "w"))) {<br />

<strong>per</strong>ror(argv[2]);<br />

exit(2);<br />

}<br />

do {<br />

n = fread(buf, sizeof(int), 1024, fin);<br />

fwrite(buf, sizeof(int), n, fout);<br />

} while (n);<br />

fclose(fin);<br />

fclose(fout);<br />

return 0;<br />

Il programma dichiara due variabili di tipo puntatore a FILE, fin e fout, che individueranno il<br />

file da copiare ed il file destinazione.<br />

Le due variabili sono inizializzate chiamando la funzione di libreria fopen con le due linee di<br />

codice<br />

if (!(fin = fopen(argv[1], "r")))<br />

if (!(fout = fopen(argv[2], "w")))<br />

che aprono rispettivamente un file in lettura e uno in scrittura. I nomi dei file vengono otenuti<br />

d<strong>alla</strong> linea di comando, e sono rispettivamente il secondo e il terzo parametro 1 . Le istruzioni<br />

1 Il primo parametro della linea di comando è sempre il nome del programma lanciato.<br />

118

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!