PDA

View Full Version : Come scrivere interi su file?


Algeroth
01-12-2005, 16:35
Ciao a tutti,

sto cercando di scrivere in linguaggio c sulla mandrake 10.1 un programma.Il problema e' che usando la system call write() posso scrivere soltanto caratteri,io invece devo scrivere degli interi sul file.Conoscete qualche system call o funzione per farlo?

grazie in anticipo :)

ilsensine
01-12-2005, 16:39
Con la write non scrivi caratteri, scrivi byte. Se devi creare un file di testo, faresti bene a convertire l'intero in stringa e scriverlo; altrimenti se devi creare un file binario è sufficiente qualcosa tipo:
int val = 12345;
write(fd, &val, sizeof(val));

Algeroth
01-12-2005, 16:43
Ti ringrazio tantissimo per la risposta ma come faccio a convertire l'intero in stringa? :D

ilsensine
01-12-2005, 16:50
char buf[16];
int val = 12345;
sprintf(buf, "%d", val);
write(fd, buf, strlen(buf));

andbin
01-12-2005, 16:51
Ti ringrazio tantissimo per la risposta ma come faccio a convertire l'intero in stringa? :D
Con la sprintf della stdio:
#include <stdio.h>

int n=1234;
char buffer[16];
sprintf (buffer, "%d", n);

ilsensine
01-12-2005, 16:52
anzi, meglio:
int val = 12345;
dprintf(fd, "%d", val);

nb dprintf è una estensione GNU, non è standard.

andbin
01-12-2005, 16:54
char buf[16];
....
Azz... sono stato battuto sul tempo :D

Algeroth
01-12-2005, 16:58
Grande! ora funziona tutto! Ti ringrazio di cuore :) :)