SENDFILE
Section: Linux Programmer's Manual (2)
Updated: 1998년 12월 1일
Index
Return to Main Contents
이름
sendfile - 데이타와 파일 디스크립터사이의 전송.
사용법
#include <sys/sendfile.h>
ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count)
설명
이것은 하나의 파일 디스크립터와 다른 파일 디스크립터사이의 복사본 데이타를 호출한다.
이것들중 하나 혹은 둘 모두는 소켓과 관련될런지 모른다.
in_fd
는 읽기 위해 열린 파일 디스크립터이고,
out_fd
는 쓰기 위해 열린 디스크립터이어야 한다.
offset
은
sendfile(2)
가 데이타를 읽기 시작할 입력파일 포인터 지점을 가진 변수 포인터이다.
sendfile
이 반환할때, 이 변수는 읽혀진 마지막 바이트를 따르는 바이트의 offset에 설정될 것이다.
count
는 파일디스크립터 사이의 복사를 위한 바이트 양이다.
주의
Sendfile은
in_fd
의 현재파일 포인터를 수정하진 못하지만,
out_fd
은 수정한다.
당신이 TCP 소켓으로 파일을 보내기 위해 sendfile사용을 계획하지만 파일 내용의 앞부분에
몇개의 헤더 데이타를 보낼 필요가 있다면,
패킷의 수를 최소화하고 실행튜닝을 위해
tcp(7)
의
TCP_CORK
옵션을 본다.
반환값
전송이 성공하면,
out_fd
에 기록된 바이트수가 반환된다. 에러시, -1이 반환되고,
errno
는 적절히 설정된다.
에러
- EBADF
-
입력파일이 읽기위해 열리지 않았거나 출력파일이 쓰기위해 열리지 않았다.
- EINVAL
-
디스크립터가 유효하지 않거나 잠겼다.
- ENOMEM
-
in_fd
에서 읽기 위한 메모리가 부족하다.
- EIO
-
in_fd
에서 읽는 동안 예상외의 에러가 생겼다.
버전S
sendfile
은 리눅스 2.2의 새로운 기능이다.
다른 유닉스에서는 종종
다른 semantics와 프로토타입을 가진
sendfile
를 구현한다. 그것은 이식가능한 프로그램에 사용되지 않아야 한다.
관련 항목
socket(2),
open(2)
역자
ASPLINUX<man@asp-linux.co.kr>, 2000년 7월 26일
Index
- 이름
-
- 사용법
-
- 설명
-
- 주의
-
- 반환값
-
- 에러
-
- 버전S
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:07:00 GMT, March 25, 2004