이 름
truncate, ftruncate − 지 정 된 길 이 로 파 일 을 자 른 다 .
사 용 법
#include <unistd.h>
int
truncate(const char *path, off_t
length);
int ftruncate(int fd, off_t
length);
설 명
Truncate는 path로 지 정 된 파 일 이 나 fd로 참 조 되 는 파 일 을 length 바 이 트 크 기 로 자 른 다 . 만 일 파 일 이 이 크 기 보 다 크 다 면 , 나 머 지 데 이 터 는 잃 는 다 . 만 일 파 일 이 이 크 기 보 다 작 다 면 , 파 일 이 변 화 없 이 그 대 로 일 지 확 장 될 지 는 알 수 없 다 . 후 자 의 경 우 확 장 된 부 분 은 0으 로 채 워 진 다 . ftruncate에 서 파 일 은 쓰 기 위 해 열 려 져 있 어 야 한 다 .
반 환 값
성 공 시 , 0이 리 턴 된 다 . 에 러 시 , −1이 리 턴 되 며 , errno는 적 당 한 값 으 로 설 정 된 다 .
에 러
truncate:
ENOTDIR
경 로 접 두 사 요 소 가 디 렉 토 리 가 아 니 다 .
EINVAL |
경 로 이 름 에 high-order 비 트 가 설 정 된 문 자 가 포 함 되 있 다 (올 바 른 ASCII 문 자 가 아 니 다 ). |
ENAMETOOLONG
경 로 이 름 요 소 가 255자 를 넘 었 거 나 , 전 체 경 로 이 름 이 1023자 를 넘 었 다 .
ENOENT |
지 정 된 파 일 이 존 재 하 지 않 는 다 . | ||
EACCES |
경 로 접 두 사 요 소 에 대 한 탐 색 허 가 가 거 부 되 었 다 . | ||
EACCES |
지 정 된 파 일 을 사 용 자 가 쓸 수 없 다 . | ||
ELOOP |
경 로 를 찾 아 갈 때 , 너 무 많 은 심 볼 릭 링 크 가 존 재 한 다 . | ||
EISDIR |
지 정 된 파 일 이 디 렉 토 리 이 다 . | ||
EROFS |
지 정 된 파 일 이 읽 기 전 용 파 일 시 스 템 에 있 다 . |
ETXTBSY
파 일 이 실 행 되 고 있 는 순 수 절 차 파 일 (공 유 된 텍 스 트 )이 다 .
EIO |
inode 갱 신 중 에 I/O에 러 가 발 생 했 다 . |
|||
EFAULT |
Path가 프 로 세 스 에 할 당 된 영 역 밖 을 가 리 키 고 있 다 . |
ftruncate:
EBADF |
fd가 유 효 한 기 술 자 가 아 니 다 . |
|||
EINVAL |
fd가 파 일 이 아 니 라 , 소 켓 을 가 리 키 고 있 다 . |
|||
EINVAL |
fd가 쓰 기 위 해 열 려 있 지 않 다 . |
호 환
4.4BSD, SVr4 (이 시 스 템 콜 은 BSD 4.2에 서 처 음 으 로 나 타 났 다 ). SVr4는 truncate 에 러 조 건 인 EINTR, EMFILE, EMULTIHP, ENAMETOOLONG, ENFILE, ENOLINK, ENOTDIR을 추 가 적 으 로 기 술 한 다 . SVr4는 ftruncate 를 위 한 EAGAIN 그 리 고 EINTR 에 러 조 건 을 추 가 적 으 로 기 술 한 다 . POSIX에 는 ftruncate는 있 지 만 truncate는 없 다 .
버 그
이 시 스 템 콜 은 파 일 에 서 바 이 트 의 영 역 을 버 릴 수 있 도 록 일 반 화 되 어 야 한 다 .
관 련 항 목
역 자
정 강 훈 <skyeyes [AT] soback.net>, 5월 13일