|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
[C]domande sull'allocazione di memoria durante lettura su pipe
mettiamo caso debba scrivere stringhe su pipe:
prima invio il numero di caratteri trovato con una strlen,poi invio il messaggio. il client che riceve,quando alloca spazio per la stringa da ricevere,deve sempre aggiungere 1 per il terminatore? lo stesso vale per il numero dei byte da leggere specificati sulla read della pipe? non riesco a leggere precisamente il messaggio spedito,alla prima volta si,ma nelle volte consecutive si concatenano sempre uno o due caratteri indecifrabili.. grazie! |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Il ricevente dovrà allocare spazio di dimensione N + 1 per il nullo finale. Le operazioni di read riempiranno solo N caratteri, chiaramente. Sei poi tu che dovrai assicurarti che la stringa sia correttamente terminata dal nullo (se non hai usato una allocazione che azzera la memoria, vuol dire che dovrai fare alla fine un buffer[N] = '\0', per intenderci).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:18.




















