1
バッファに書き込まれたCのソケットを通してメッセージを受け取りました。メッセージには終端記号(@@
)が付いているので、いつバッファに書き込むのを止めるかはわかりますが、バッファはメッセージよりもはるかに大きいです。ターミネーターを含めずに書き込む方法はありますか?バッファの残りの部分を取り除きますか?ファイルに書き込むときにターミネータを除外します
多分位置ポインタを持つものはありますか?
char *pos;
FILE* fp = fopen("tempfile", "w+");
pos = strstr(buffer, "@@");
pos = '\0'; // Maybe I could stop the writing with NULL?
fwrite(buffer, 1, BUF_SIZE /*too big*/, fp);
fclose(fp);
メッセージを含むバッファの部分のサイズを取得するか、特定の文字まで自分のファイルに書き込む必要があります。どちらの方法でも動作します。
'fwrite(バッファ、1、posバッファ、fp)'? –