私はリングバッファを実装しています.1つの方法でCHUNKSIZE
は、ループ内のファイルからバイトを読み取り、ポインタをリングバッファに挿入しています。
私はwhileループでこれをやっています。コードは問題malloc
なく動作calloc
しますが、ループの最後で segfault が発生します。これは本当に謎です。
コードは次のとおりです。
fpos_t position = 0;
fpos_t file_size = 0;
fseek(file, 0L, SEEK_END);
fgetpos(file,&file_size);
fseek(file, 0L, SEEK_SET);
char* b = calloc(CHUNKSIZE,sizeof(char));
// char* b = malloc(sizeof(char)*CHUNKSIZE);
while(fread(b,1,CHUNKSIZE,file)){
deposit(reader_buf,b);
// This always changes the cursor position by -150 to create overlapping chunks
fseek(file,-150,SEEK_CUR);
b = calloc(CHUNKSIZE,sizeof(char));
// b = malloc(sizeof(char)*CHUNKSIZE);
}