PDA

View Full Version : [C]scrittura di matrici di dimensione arbitraria su pipe...


santaclause83
12-09-2007, 20:39
a seconda della richiesta del client,il server ha un vettore di puntatori a struct di tipo MATRICE,ciascuna inizializzata con tutti gli elementi,di tipo double

nel caso il client voglia la stampa di una delle matrici dell'insieme,ho bisogno di
1-estrarre ogni elemento dalla matrice puntata dal pointer corrispondente alla matrice cercata nell'insieme
2-salvare tutto su una stringa,col giusto formato
3-scrivere sulla pipe il tutto

il problema sta nel fatto che la mia stringa(quella che andrò a rispedire al client con la matrice scritta sopra) deve cambiare dinamicamente non solo rispetto al numero degli elementi,e questo non sarebbe un problema,ma anche rispetto alla grandezza di ciascun numero

non posso fare una malloc iniziale perchè il numero dei char rispetto alla grandezza in caratteri del numero estratto può cambiare...

suggerimenti?

(non pretendo righe di codice,è giusto per discuterne e aiutarmi a ragionare)

grazie!

cionci
13-09-2007, 10:24
Invia la matrice sulla pipe in binario...ci penserà dopo l'altro processo a metterla in una stringa.

santaclause83
13-09-2007, 13:11
ok,quindi per metterlo sulla pipe però nel caso voglia farlo con una write sola dovrei

1-inizializzare un array di double grande quanto tutti gli elementi della matrice
2-scriverceli
3-poi scrivere il tutto sulla pipe....

dato che la write vuole la lunghezza del buffer,come faccio a calcolarla dall'array di double?la strlen dovrebbe funzionare ugualmente..

cionci
13-09-2007, 14:15
Attenzione...non puoi lavorare con i puntatori (e quindi con la memoria dinamica). Devi andare a scrivere double per double sulla pipe. E se la lunghezza è variabile devi trasmettere prima la lunghezza della sequenza (o meglio ancora la dimensione della matrice).