C 언어에서 파일 내용을 소켓 등에 보낼 때 사용자 버퍼를 거치지 않는 복사 경로로 sendfile()을 사용할 수 있다.
헤더와 선언
#include <sys/sendfile.h>
ssize_t sendfile(int out_fd, int in_fd, off_t * offset,
size_t count);반환값과 주의점
전송한 바이트 수를 반환하고 오류는 -1이다. 한 번에 전부 전송된다고 가정하지 않는다.
out_fd와 in_fd의 순서를 구분한다. offset 포인터를 주면 원본 파일의 현재 위치 대신 그 값을 사용하고 갱신한다.
답글 달기