TRUNCATE
Section: 리눅스 프로그래머 매뉴얼 (2)
Updated: 1998년 12월 21일
Index
Return to Main Contents
이름
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는
없다.
버그
이 시스템 콜은 파일에서 바이트의 영역을 버릴 수 있도록 일반화되어야 한다.
관련 항목
open(2)
역자
정강훈 <skyeyes@soback.kornet.net>, 5월 13일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- 버그
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:06:59 GMT, March 25, 2004