다음은 Linux OS의 파일에 int
및 char array
을 쓰는 예제 C 코드입니다. 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