我必须在一个二进制文件中插入一串字符。如何将 0插入到C中的二进制文件中
为了做到这一点,我使用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);
你能帮忙吗?
谢谢。
我必须在一个二进制文件中插入一串字符。如何将 0插入到C中的二进制文件中
为了做到这一点,我使用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);
你能帮忙吗?
谢谢。
您可以使用以下方法:
fputc(0, my_file);
`fputc('\0', my_file);` will do it for you
一个老诀窍是使用空的空终止字符串
fwrite("", 1, 1, my_file);
你需要让你的缓冲my_word与+1 alocated ,然后
my_word[my_word_length_in_bytes]=0;
fwrite(my_word, my_word_length_in_bytes+1, 1, my_file);
你可以试试在实际将它写入文件(最佳解决方案imho)之前,她在word
的末尾连接了一个'\ 0'字符,或者使用0x00字节(即'\ 0'的ASCII码)执行第二次fwrite。
这是一个非常昂贵的方式来编写'fputc(0,f)'... – 2011-03-25 13:16:52
这是不同的,但它的工作原理。它更昂贵,是的,'fputc(0,f)'是更好的方法。但不是世界末日。我给出了这个答案,因为我用'pwrite'完成了类似的工作,将一个空字符写入给定的偏移量。 – Joe 2011-03-25 13:56:05
事实上,这个技巧对文件描述符和“写入”或类似的接口非常有用。 – 2011-03-25 14:06:22