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);}
執行
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);}
新聞熱點
疑難解答
圖片精選