처음 열때는 "wb+"로 열고, 그다음부터는 "rb+" 로 열어야 한다.
"ab+"로 열면 무조건 파일 끝에만 write가 된다. (fseek이 제대로 동작 하지 않는다)
이미 있는 파일에 "wb+"로 열어버리면 파일 내용이 지워져 버린다.
파일 내용을 편집, 추가 할때는 "rb+"로 해야 한다.
예제)
#include
#include
#include
int main(int argc, char *argv[]) {
char *filename = "test.bin";
FILE *fp = NULL;
int array[]= {9,3,1,2,5,0,6,8,7,4};
int len = sizeof(array)/sizeof(int);
for(int i=0; i
fp = fopen(filename, "wb+");
else
fp = fopen(filename, "rb+");
int offset = array[i];
unsigned char data = array[i] & 0x0ff;
int datalen = 1;
fseek(fp, offset, SEEK_SET);
fwrite(&data, datalen, 1, fp);
fseek(fp, 0, SEEK_END);
fclose(fp);
}
return 0;
}