2011-12-31 83 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],如果你想把東西放在你的單元素數組中。

相關問題