C 언어에서 여러 버퍼로 파일을 읽으면서 공유 파일 위치는 바꾸지 않아야 한다면 preadv()를 사용한다.
헤더와 선언
#include <sys/uio.h>
ssize_t preadv(int fd, const struct iovec *iov, int iovcnt, off_t offset);반환값과 주의점
모든 버퍼에 읽은 바이트 수의 합을 반환한다. EOF는 0, 오류는 -1이다.
readv()의 버퍼 배열에 파일 offset이 더해진 형태다. 버퍼별 길이와 파일 내 위치는 모두 바이트 기준이다.
답글 달기