본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 파일을 지정한 크기로 변경 ftruncate()

C언어 파일을 지정한 크기로 변경 ftruncate()

· 댓글개 · 바다야크

C ftruncate() 파일을 지정한 크기로 변경 함수

파일을 지정한 크기로 변경합니다.

  • 헤더: unistd.h
  • 형태: int ftruncate(int fildes, off_t length)
  • 인수: int fildes 파일 디스크립터
    off_t length 파일 크기
  • 반환: int 0 == 성공, -1 == 실패

파일 크기를 변경하는 함수에는 2 가지가 있습니다.

  • truncate() : 파일 이름으로 파일 크기를 변경 
  • ftruncate() : 파일 디스크립터로 파일 크기를 변경

C언어 ftruncate() 함수 예제

예제에서는 파일의 크기를 100 byte로 변경합니다. 파일이 지정된 크기보다 작다면 나머지 채워지는 부분은 '\0'으로 채워지게 됩니다.

#include <stdio.h>         // puts()
#include <string.h>        // strlen()
#include <fcntl.h>         // O_WRONLY, O_CREAT
#include <unistd.h>        // write(), close(), ftruncate()

#define  BUFF_SIZE   1024

int main()
{
   int   fd;
   char *buff  = "forum.falinux.com";

   fd = open( "./test.txt", O_WRONLY ¦ O_CREAT, 0644);
   write(  fd, buff, strlen( buff));
   ftruncate( fd, 100);              // 파일 디스크립터로 파일 크기 조정

   close( fd);

   return 0;
}

C언어 ftruncate() 예제 실행 결과

]$ ./a.out
]$

C언어 ftruncate()
C언어 ftruncate()

HEX 에디터로 생성된 파일을 열어 보면 빈 공간은 0x00으로 채워져 있는 것을 볼 수 있습니다.

SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.