[Tech] Problemi con il C

Valerio Montagnani tech@vmontagnani.it
Mer 5 Maggio 2004 09:28:48 CEST


Ciao amici, potreste aiutarmi a capire perchè ottengo un errore di "segmentation fault" quando provo a trasferire il contenuto di un buffer in un file? Grazie.

Il funzionamento logico è il seguente:
la funzione ModalitaTest() esegue le operazioni di allocazione dinamica del buffer e lo riempie opportunamente.
Quindi chiama la funzione SalvaBuffer(buffer,32000) che contiene il codice sotto riportato

Questo è il codice:

==========================================
dichiarazione delle funzioni:
ModalitaTest()
SalvaBuffer(unsigned char *data, int size)

dichiarazione delle variabili:
#define PERMS 0666
unsigned char *buffer;
int fd_file, file_name;  

buffer viene allocato con una calloc; 
=========================================

questa parte è contenuta in SalvaBuffer():

if ((fd_file=creat(file_name,PERMS))==-1)
{controllo_errori(205);}
if (write(fd_file,buffer,size)==-1)
{controllo_errori(206);}
close(fd_file);

Ciao, Vale
-- 
Valerio Montagnani        (Lug-Account)        <tech@vmontagnani.it>
              pub 1024/C7E4BC57    sub 2048g/0E170155
Key fingerprint = D5A4 EDFC 060C 5BD6 E2DD  8252 3B67 C1EB C7E4 BC57



Maggiori informazioni sulla lista flug-tech