반응형
ftruncate(2)
#include <unistd.h>
#include <sys/types.h>
int ftruncate(int fd, off_t length);
쓰기로 open된 fd에 대해서 파일 크기를 length 길이 만큼의 크기로 변경합니다. length가 파일의 크기보다 작으면 length만큼의 크기로 파일 뒤쪽을 자릅니다. length가 파일의 크기보다 크면 파일의 크기를 length만큼으로 변경하고 0x00으로 채웁니다.
파라미터
fd
- 쓰기 mode로 설정된 fd (O_WRONLY, O_RDWR)
length
- 조정할 파일 size
RETURN
0
- 정상적으로 처리되었습니다.
-1
- 오류가 발생하였으며, 상세오류내용은 errno에 설정되었습니다.
EBADF : fd는 유효하지 않은 file descriptor임.
EBADF or EINVAL : fd가 쓰기용으로 open되지 않음
EINVAL : fd가 참조하고 있는 파일이 일반 파일이 아님
활용 예제
Sample
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
int main(int argc, char *argv[])
{
int fd;
......
if((fd = open("./myprogram.log", O_WRONLY | O_APPEND, 0644)) == -1) {
fprintf(stderr, "log file open error: %s\n", strerror(errno));
return 1;
}
if(ftruncate(fd, 0) == -1) {
fprintf(stderr, "log file truncate error: %s\n", strerror(errno));
return 1;
} else {
printf("log file을 초기화하였습니다.\n");
}
......
}
see also :
반응형
'C언어 header > unistd.h' 카테고리의 다른 글
getppid(2) - 부모 프로세스의 ID 얻기 (0) | 2019.10.01 |
---|---|
getpid(2) - 현재 프로세스의 ID 얻기 (0) | 2019.10.01 |
fsync(2) - kernel에 buffering된 데이터를 disk로 동기화하기(Meta 정보 포함) (0) | 2019.10.01 |
fstat(2) - 열린 파일의 상태 및 정보를 얻는 함수 (0) | 2019.10.01 |
fork(2) - 프로세스의 생성 (0) | 2019.10.01 |