본문 바로가기

Programming/C/C++

C/고수준 파일 입출력/임시 파일 생성

반응형
임시파일 생성
- 임시파일명이 중복되지 않도록 임시파일명 생성
- 임시파일명 생성 : tmpnam(3)

  • 임시파일명을 시스템이 알아서 생성
- 접두어 지정 : tempnam(3)
  • 임시 파일명에 사용할 디렉토리와 접두어 지정, 접두어는 5글자까지만 지원
tempnam 사용
- 템플릿을 지정한 임시 파일명 생성 : mktemp(3)
  • 임시파일의 템플릿을 받아 임시 파일명 생성
  • 템플릿은 대문자 'X' 6개로 마치도록 해야한다.

tmpnam 과 tempnam 실행 예시

임시 파일명 만들기 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void) {
    char *fname;
    char fntmp[BUFSIZ];
    char template[32];
 
    fname = tmpnam(NULL);
    printf("1. TMP File name(tmpnam) : %s\n", fname);
 
    tmpnam(fntmp);
    printf("2. TMP File Name(tmpnam) : %s\n", fntmp);
 
    fname = tempnam("/tmp""hanbit");
    printf("3. TMP File Name(tempnam) : %s\n", fname);
 
    strcpy(template"/root/tmp/hanbitXXXXXX");
    fname = mktemp(template);
    printf("4. TMP File Name(mktemp) : %s\n", fname);
 
    return 0;
}
 


임시 파일의 파일 포인터 생성
- tmpfile(3)
  • 자동으로 w+ 모드로 열린 파일 포인터를 리턴

tmpfile() 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main(void) {
    FILE *fp;
 
    fp = tmpfile();
 
    fputs("unix system", fp);
 
    fclose(fp);
 
    return 0;
}
 



반응형