2011-12-31 143 views
2

我需要使用fwrite将分隔符= 0xf0f0f0f0写入二进制文件。它需要以这样一种方式完成,即当在UNIX上的xxd中查看时,0xf0f0f0f0出现在文件的开头。目前,我正在做这种方式,如何使用fwrite写入数据0xf0f0f0f0

unsigned int delim[1]; 
    delim[1] = 0xf0f0f0f0; 
    fwrite(delim, 4, 1, destination); 

但它显然不工作,因为XXD正显示出这个在文件的开头:

0000000: 90c9 49ac 
+0

你真的应该学会编译所有的警告和调试(例如'gcc -Wall -g')并使用调试器(即'gdb')。 – 2011-12-31 18:38:50

回答

10

大概应该是

unsigned int delimnum = 0xf0f0f0f0; 
fwrite(&delimnum, sizeof(delimnum), 1, destination); 

或者至少使用delim[0],因为数组索引编号从0开始。

5

This:

unsigned int delim[1]; 

是一个包含一个元素的数组。

此:

delim[1] = 0xf0f0f0f0; 

指单元素数组,这是不正确的代码在第二元件。

更改delim[1]delim[0],如果你想把东西放在你的单元素数组中。