C & LINUX

C / LINUX tmpnam, tmpfile

Ocean_ 2022. 5. 2. 14:11

함수 기능

임시 파일을 생성하는 라이브러리함수

함수 원형

#include <stdio.h>

char *tmpnam(char *buf);
FILE *tmpfile();

리턴 값 : 고유한 임시파일의 경로이름을 가리키는 포인터, 고유이름 못만들면 NULL

함수 파라메터

buf

파일버퍼

함수 예제

tmpnam

#include<stdio.h>
#include<stdlib.h>
#define MAX_LINE 4096
int main(void){
    char buf[MAX_LINE];
    char name[L_tmpnam];
    FILE *fp;
    printf("temp file 1: %s\n",tmpnam(NULL));
    tmpnam(name);
    printf("temp file 2: %s\n",name);
    if((fp=tmpfile())==NULL){
        fprintf(stderr,"tmpfile error\n");
        exit(1);
    }
    fputs("tmpfile created temporary file.\n",fp);
    fseek(fp,0,SEEK_SET);
    if(fgets(buf,sizeof(buf),fp)==NULL){
        fprintf(stderr,"fgets error\n");
        exit(1);
    }
    fputs(buf,stdout);
    exit(0);
}

tmpfile

#include<stdio.h>
#include<stdlib.h>

#define BUFFER_SIZE 1024

int main(void){
    char buf[BUFFER_SIZE];
    char name[L_tmpnam];
    FILE *fp;

    printf("Temporary filename <<%s>>\n",tmpnam(name));

    if((fp=tmpfile())==NULL){
        fprintf(stderr,"tmpfile create error!!\n");
        exit(1);
    }

    fputs("create tmpfile success!!\n",fp);
    rewind(fp);
    fgets(buf,sizeof(buf),fp);
    puts(buf);
    exit(0);
}

함수 결과

tmpnam

tmpfile

리눅스시스템 프로그래밍 - 홍지만 저

교재 내에 있는 예제를 바탕으로 작성한 글 입니다.