PDA

View Full Version : [C]domande sulle named pipes..


santaclause83
30-05-2007, 15:05
nel caso debba inviare su una named pipe un messaggio più ampio del buffer di scrittura come imposto il ciclo di scrittura?

vi scrivo cosa ho in mente ma non so se va bene e se c'è una funzione che possa
emulare la strncpy nel modo in sui vi scrivo sotto,immagino di si ma ora come ora non mene viene in mente alcuna....:muro:


while ( (l=write(fd_server,msg,N)) == EOF){

strncpy(msg,<<messaggio da inviare in posizione N>>,N)

}


un altra cosa...sulla stessa named pipe la dimensione del buffer di scrittura del client deve coincidere con quella di lettura del server?qual'è la dimensione più usuale?

grazie mille!

santaclause83
31-05-2007, 11:54
il server in ricezione dovrebbe leggere iterazione per iterazione il messaggio e concatenare ogni frammento ricevuto in una stringa sua;

la stringa che si creerà il server sarà allocata alla prima iterazione con una malloc grande quanto scritto nella prima posizione del messaggio mandato

il problema è che non riesco a trovare la condizione giusta nella guardia del while per far uscire il server dalla lettura una volta finito il messaggio..ho provato con EOF,'\0' ma niente da fare..:confused:

vi mando il codice che descritto dal passaggio sopra

do{

if ( ( l=read(fd_server,&buf_figlio,sizeof(buf_figlio))) == -1){printf("errore in lettura su pipe clientserver \n");exit(errno);}

if(i==0)ricevi = (char *)malloc(sizeof(char)*buf_figlio[0]);

strncat(ricevi,buf_figlio,strlen(buf_figlio));

i++;

}while( l != '\0');