C語言新建臨時文件和臨時文件名的方法
C語言mkstemp()函數:建立臨時文件
頭文件:
#include <stdlib.h>
定義函數:
int mkstemp(char * template);
函數說明:mkstemp()用來建立唯一的臨時文件. 參數template 所指的文件名稱字符串中最后六個字符必須是XXXXXX. Mkstemp()會以可讀寫模式和0600 權限來打開該文件, 如果該文件不存在則會建立該文件. 打開該文件后其文件描述詞會返回. 文件順利打開后返回可讀寫的文件描述詞. 若果文件打開失敗則返回NULL, 并把錯誤代碼存在errno 中.
錯誤代碼:EINVAL 參數template 字符串最后六個字符非XXXXXX. EEXIST 無法建立臨時文件.
附加說明:
參數 template 所指的文件名稱字符串必須聲明為數組, 如:
char template[] = "template-XXXXXX";
千萬不可以使用下列的表達方式
char *template = "template-XXXXXX";
范例
#include <stdlib.h>
main()
{
int fd;
char template[] = "template-XXXXXX";
fd = mkstemp(template);
printf("template = %s\n", template);
close(fd);
}
執(zhí)行
template = template-lgZcbo
C語言mktemp()函數:產生唯一臨時文件名
頭文件:
#include <stdlib.h>
定義函數:
char * mktemp(char * template);
函數說明:mktemp()用來產生唯一的臨時文件名. 參數template 所指的文件名稱字符串中最后六個字符必須是XXXXXX. 產生后的文件名會借字符串指針返回.
返回值:文件順利打開后, 指向該流的文件指針就會被返回. 如果文件打開失敗則返回NULL, 并把錯誤代碼存在errno 中.
附加說明:參數 template 所指的文件名稱字符串必須聲明為數組,如:
char template[] = "template-XXXXXX";
不可用
char * template = "template-XXXXXX";
范例
#include <stdlib.h>
main()
{
char template[] = "template-XXXXXX";
mktemp(template);
printf("template=%s\n", template);
}

