我有一個隨機訪問文件以「r + b」模式打開,記錄長度相同。在閱讀並覆蓋之後,我可以更改記錄的內容嗎?覆蓋隨機訪問文件
我試着下面的代碼,但在運行我得到:分段故障(核心轉儲)
#include<stdio.h>
int main()
{
struct tala {
int rec_no;
long file_no;
};
FILE *file_locking;
struct tala t,f;
file_locking = fopen("/path/to/my/file.bin", "rb+");
t.rec_no = 1;
t.file_no = 3;
if (fwrite(&t, sizeof(struct tala),1,file_locking)==0)
printf("Error opening file");
t.rec_no=0;
rewind(file_locking);
if (fwrite(&t, sizeof(struct tala),1,file_locking)==0)
printf("Error opening file");
rewind(file_locking);
if (fread(&f, sizeof(struct tala),1,file_locking)==0)
printf("Error opening file");
printf("\n %d",f.rec_no);
printf("\n %ld", f.file_no);
fclose(file_locking);
}
可能重複[開放模式的二進制文件](http://stackoverflow.com/questions/6000430/opening-mode-of-binary-files) – 2011-05-15 07:07:40