c언어 질문드립니다(파일 입출력 관련)
글쓴이: hephaistus / 작성시간: 금, 2012/08/24 - 11:41오전
if (max_insts && sim_num_insn >= max_insts) { //memset(cache_il1,0,sizeof(struct cache_t)); //FILE *fp = NULL; FILE * fp = NULL; if((fp = fopen("image.bin","wb")) == NULL) { fprintf(stderr,"error\n"); exit(1); } // fwrite(cache_il1) fwrite(&cache_il1, sizeof(struct cache_t), 1, fp); fclose(fp); if((fp = fopen("image.bin","rb")) == NULL) { fprintf(stderr,"error\n"); exit(1); } // int i; fread(&cache_il1, sizeof(struct cache_t), 1, fp); fclose(fp); return; } }
제가 하려고 하는것이 cache_il1 포인터 변수가 가리키고 있는 구조체에 저장되어 있는 내용을 파일에 바이너리로 저장하려고 하는데요
위 처럼 하니 파일이 생성이 안되더라구요.
혹시 cache_il1에 malloc을 안해줘서 그런것인가요?
무엇이 문제인건지 따끔한 조언 부탁드립니다.
Forums:
if문 안으로 들어가는지 확인부터 하시는게 좋겠네요.
cache_il1이 무엇을 가르키고, malloc이 되었는지 문제가 아니고,
fp =fopen("image.bin", "wb");
이 명령이 제대로 수행되었는지 확인하셔야 합니다.
fwrite함수로 값을 쓰기전, fopen("image.bin", "wb"); 명령이 제대로 수행되었다면, 빈 "image.bin"파일이 생성됩니다.
"image.bin"파일이 생성되지 않았다고 하셨는데, 이 말은 즉, fp =fopen("image.bin", "wb"); 명령을 수행되지 않았을지도 모르겠네요.
댓글 달기