Как вставить \ 0 в двоичный файл в C - PullRequest
0 голосов
/ 25 марта 2011

Мне нужно вставить несколько символов в двоичный файл.

Для этого я использую fwrite.После этого я хотел бы поставить \0.

Я не уверен, как это сделать.

const unsigned char *my_word; /*my_word has no \0 at the end*/

fwrite(my_word, my_word_length_in_bytes, 1, my_file);

Можете ли вы помочь?

Спасибо.

Ответы [ 5 ]

2 голосов
/ 25 марта 2011

Вы можете использовать следующее:

fputc(0, my_file);
1 голос
/ 25 марта 2011

Вам необходимо выделить буфер my_word с +1, затем

my_word[my_word_length_in_bytes]=0;
fwrite(my_word, my_word_length_in_bytes+1, 1, my_file);
0 голосов
/ 25 марта 2011

Вы можете либо объединить символ '\ 0' в конце word перед тем, как фактически записать его в свой файл (лучшее решение imho), либо выполнить второй fwrite с байтом 0x00 (который является кодом ASCII для '\0' ).

0 голосов
/ 25 марта 2011

Старый трюк заключается в использовании пустой строки с нулевым символом в конце

fwrite("", 1, 1, my_file);
0 голосов
/ 25 марта 2011
`fputc('\0', my_file);` will do it for you
...