建立名字唯一的臨時檔案:推薦使用tmpfile和mkstemp,因為這兩個函式建立檔案的同時並開啟檔案,總的來說安全又可靠。tmpfile返回的是檔案流指標file*,mkstemp返回的是檔案描述符。
表頭檔案 #include
函式定義 file *tmpfile(void);
函式描述 建立唯一的臨時檔案,並開啟檔案
返回值 成功返回檔案流,失敗返回null
表頭檔案 #include
函式定義 char *tmpnam(char *s);
函式描述 建立唯一的臨時檔案
返回值 成功返回檔案名字指標,失敗返回null
#include
#include
int main()
tmpfp = tmpfile(); //方式二:推薦使用
if(tmpfp)
printf("opened a temporary file ok\n");
else
perror("tmpfile");
exit(0);
}用法與tmpnam差不多,只是名字部分可以由template確定,template後面六個字元必須為x,例如tmp******
示例:#include
#include
//char *mktemp(char *template);
int main(int argc,char *argv)
printf("name:%s,filename:%s\n",name,filename);
exit(0);
}相關函式 mktemp
表頭檔案 #include
定義函式 int mkstemp(char * template);
函式說明 mkstemp()用來建立唯一的臨時檔案。引數template 所指的檔名
稱字串中最後六個字元必須是******。mkstemp()會以可讀寫模式
和0600 許可權來開啟該檔案,如果該檔案不存在則會建立該檔案。打
開該檔案後其檔案描述詞會返回。檔案順利開啟後返回可讀寫的文
件描述詞。
若果檔案開啟失敗則返回null,並把錯誤**存在errno中。
錯誤** einval 引數template 字串最後六個字元非******。eexist 無法
建立臨時檔案。
附加說明 引數template所指的檔名稱字串必須宣告為陣列,如:
char template[ ] =」template-******」;
千萬不可以使用下列的表達方式
char *template = 「template-******」;
與mktemp函式區別:mkstemp返回值為檔案描述符,mktemp返回值為檔名指標。
示例:#include
int main(int argc,char *argv)
close(fd);
exit(0);
}**:
C 建立臨時檔案
1.在臨時檔案只能夠建立乙個臨時檔案並返回該檔案的完整路徑 在臨時檔案只能夠建立乙個臨時檔案並返回該檔案的完整路徑 c documents and settings yourname local settings temp t e6.tmp system.io.path.gettempfilenam...
C建立臨時檔案
前言 linux下除了有實實在在的檔案外,還可以建立臨時的檔案和目錄,這裡介紹兩個建立臨時檔案的函式,tmpfilef和mkstemp,以及建立臨時目錄的函式mkdtemp。這三個函式具體用法如下。一 建立乙個無名的臨時檔案,程式退出時關閉臨時檔案 1 標頭檔案 include 2 函式原型 fil...
unix臨時檔案建立
看例子,建立乙個檔案,在unlink,檔案i節點的鏈結數變為0,但持有該檔案的控制代碼,依然可以fgets和fputs該檔案,說明檔案的資料塊依然存在,在fclose之後,才徹底刪除,這就是使用臨時檔案的原理 include include include include include setvb...