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 :

    File 속성 정보 및 파일 관리 Library

    Directory 정보 조회 및 관리 Library

    System Call File I/O Library

    Stream File I/O Library

 

블로그 이미지

사용자 자연&사람

행복한 개발자 programmer since 1995.

댓글을 달아 주세요