我有下面的示例C代碼將int
和char array
寫入Linux OS上的文件。通過fwrite將二進制文件的int值寫入
int main(void){
struct eg{
int x;
char y[3];
};
struct eg example_array[5] = {{ 0, {0}}};
int i;
for(i=0;i<3;i++){
example_array[i].x = i;
strcpy(example_array[i].y,"12");
}
FILE *fp;
fp = fopen("/home/ubuntu/example", "wb");
fwrite(&example_array, sizeof(struct eg), 5, fp);
fclose(fp);
return 0;
}
nano example
顯示內容爲^@^@^@^@12^@^@^A^@^@^@12^@^@^B^@^@^@12^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
hexedit example
其顯示爲
00000000 00 00 00 00 31 32 00 00 01 00 00 00 31 32 00 00 02 00 00 00 31 32 00 00 00 00 00 00 ....12......12......12......
0000001C 00 00 00 00 00 00 00 00 00 00 00 00 ............
我沒有看到二進制文件example_array[i].x
值。任何人都可以告訴我,我應該如何在上面的代碼中使用fwrite
?
和^@^@^@^@^@
和......
代表什麼?他們是空白的嗎?
你在什麼架構?你知道x86是小端,對嗎? –
是的,我在x86上,但我會在armv4l體系結構上編譯代碼 – sven