2011-03-25 35 views
-1

我必须在一个二进制文件中插入一串字符。如何将 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); 

你能帮忙吗?

谢谢。

回答

2

您可以使用以下方法:

fputc(0, my_file); 
0
`fputc('\0', my_file);` will do it for you 
0

一个老诀窍是使用空的空终止字符串

fwrite("", 1, 1, my_file); 
+1

这是一个非常昂贵的方式来编写'fputc(0,f)'... – 2011-03-25 13:16:52

+1

这是不同的,但它的工作原理。它更昂贵,是的,'fputc(0,f)'是更好的方法。但不是世界末日。我给出了这个答案,因为我用'pwrite'完成了类似的工作,将一个空字符写入给定的偏移量。 – Joe 2011-03-25 13:56:05

+0

事实上,这个技巧对文件描述符和“写入”或类似的接口非常有用。 – 2011-03-25 14:06:22

1

你需要让你的缓冲my_word与+1 alocated ,然后

my_word[my_word_length_in_bytes]=0; 
fwrite(my_word, my_word_length_in_bytes+1, 1, my_file); 
0

你可以试试在实际将它写入文件(最佳解决方案imho)之前,她在word的末尾连接了一个'\ 0'字符,或者使用0x00字节(即'\ 0'的ASCII码)执行第二次fwrite。

相关问题