C 언어에서 사용자 메모리 영역을 파이프의 입출력에 연결하는 저수준 함수가 vmsplice()다.
헤더와 선언
#include <fcntl.h>
ssize_t vmsplice(int fd, const struct iovec *iov, size_t nr_segs,
unsigned int flags);반환값과 주의점
처리한 바이트 수를 반환하고 오류는 -1이다. 요청한 전체 길이를 보장하지 않는다.
iovec가 가리키는 버퍼의 수명이 중요하다. SPLICE_F_GIFT처럼 페이지 소유권에 영향을 주는 옵션은 단순 복사와 다르게 다뤄야 한다.
답글 달기