この関数を使用して、データのブロックをファイル バッファーに読み込み、効率的に行う必要があります。関数の呼び出しでは、バッファから次の文字を返すか、データの新しいブロックを読み取って、その新しいブロックから最初の文字を返す必要があります。これが私がこれまでに持っているものです。どんな助けでも大歓迎です。
int get_next_char(int fd) {
static char file_buffer[FILE_BUFFER_SIZE];
static int next;
static int i= 0;
while((next = read( fd,&file_buffer, FILE_BUFFER_SIZE)) > 0) {
// next equals number of chars actually read from fd
while(i < next) i++;
}
if( next == -1 || next== '\0') {
return EXIT_FAILURE;
} else {
return file_buffer[i];
}
}