c語言建立臨時檔案

2021-08-20 11:20:21 字數 1489 閱讀 1588

建立名字唯一的臨時檔案:推薦使用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...