C truncate() 파일을 지정한 크기로 변경 함수
파일을 지정한 크기로 변경합니다.
- 헤더: unistd.h
- 형태: int truncate(const char *path, off_t length)
- 인수: char *path 경로 포함 파일 전체 이름
off_t length 파일 크기 - 반환: int 0 == 성공, -1 == 실패
파일 크기를 변경하는 함수에는 2 가지가 있습니다.
- truncate() : 파일 이름으로 파일 크기를 변경
- ftruncate() : 파일 디스크립터로 파일 크기를 변경
C언어 truncate() 함수 예제
예제에서는 파일의 크기를 100 byte로 변경합니다. 파일이 지정된 크기보다 작다면 나머지 채워지는 부분은 '\0'으로 채워지게 됩니다.
#include <stdio.h> // puts()
#include <string.h> // strlen()
#include <fcntl.h> // O_WRONLY, O_CREAT
#include <unistd.h> // write(), close(), truncate()
#define BUFF_SIZE 1024
int main()
{
int fd;
char *buff = "badayak.com";
fd = open( "./test.txt", O_WRONLY ¦ O_CREAT, 0644);
write( fd, buff, strlen( buff));
close( fd);
truncate( "./test.txt", 100); // 파일 이름으로 파일 크기 조정
return 0;
}
C언어 truncate() 예제 실행 결과
]$ ./a.out
]$
HEX 에디터로 생성된 파일을 열어 보면 빈 공간은 0x00으로 채워져 있는 것을 볼 수 있습니다.
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 파일을 지정한 크기로 변경 ftruncate() (0) | 2020.03.18 |
---|---|
C언어 디스크립터에서 스트림 포인터 구하기 함수 fdopen() (0) | 2020.03.18 |
C언어 디렉토리 만들기 함수 mkdir() (0) | 2020.03.16 |