Salve a tutti
Sono un principiante alle prime armi col C++ e oggi ho incontrato uno scoglio che proprio non riesco a circuire.
Utilizzo g++ su Ubuntu Linux.
Sto lavorando ad un programma che utilizza dei socket e volevo "sintetizzare" la funzione send() in modo da dover solo indicare il puntatore al socket e i dati da inviare.
Questo è il codice che uso:
codice:
template <class T>
int invia(int sockfd, T *send_buf) {
if (send(sockfd, send_buf, sizeof(send_buf), 0) == -1) {perror("send");}
}
e chiamo la funzione in questo modo:
codice:
invia(new_fd, "Prova Prova Prova");
Utilizzo un template per poter inserire come argomento qualsiasi tipo di variabile e non solo uno.
Il problema che mi si verifica è che dall'altro "capo" del socket, al posto della stringa desiderata vengono visualizzate solo le prime 4 lettere ("Prov") e il resto scompare, cosa che non accadeva quando invece inserivo manualmente la lunghezza dell'array.
Qualcuno sa risolvere il mio promlema?
Grazie in anticipo,
Benna