C語言創建唯一臨時檔案函式mktemp
函式簡介頭檔案:在TC2.0中其頭檔案是dir.h,在Visual C++ 6.0中,更多的使用_mktemp,其頭檔案是io.h
定義函式 char * mktemp(char * template);
功能: mktemp()用來產生唯一的臨時檔案名稱。參數template所指的檔案名稱稱字元串中最後六個字元必須是XXXXXX。產生後的檔案名稱會借字元串指針返回。
返回值: 檔案順利打開後,指向該流的檔案指針就會被返回。如果檔案打開失敗則返回NULL,並把錯誤代碼存在errno中。
其他創建臨時檔案的函式:tmpfile,tmpnam程式示例
程式示例1
(在Visual C++ 6.0中運行通過)#include
#include
#include
int main()
{
char *templat="fnXXXXXX";
char *result;
char names[5][9];
int Count ;
for(Count=0; Count<5;Count++)
{
strcpy(names[Count],templat);
result=_mktemp(names[Count]);
printf("%s\n\r",result);
}
return 0;
}
程式例2
(在TC2.0中運行成功)#include
#include
int main(void)
{
FILE *fp;
char *fname = "d:\\TXXXXXX", *newname, first;
newname = mktemp(fname);
fp = fopen(newname,"w+");
fprintf(fp,"abcdefghijklmnopqrstuvwxyz");
rewind(fp);
fscanf(fp,"%c",&first);
printf("The first character is: %c\n",first);
fclose(fp);
remove(newname);
return 0;
}
附加說明 參數template所指的檔案名稱稱字元串必須聲明為數組,如:
char template[ ]=”template-XXXXXX”;
不可用char * template=”template-XXXXXX”;
範例 #include
main()
{
char template[ ]=”template-XXXXXX”;
mktemp(template);
printf(“template=%s\n”,template);
}