我需要使用此函数将数据块读入文件缓冲区并有效地执行此操作。对我的函数的调用需要从缓冲区返回下一个字符,或者读取一个新的数据块并从该新块返回第一个字符。这是我到目前为止所拥有的。任何帮助,将不胜感激。
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];
}
}