mkstemp()函式在系統中以唯一的檔案名稱創建一個檔案並打開,而且只有當前用戶才能訪問這個臨時檔案,並進行讀、寫操作。
基本介紹
- 中文名:mkstemp()
- 頭檔案:#include<stdlib.h>
- 函式原型:int mkstemp(char *template)
- 用處:編程
頭檔案,函式原型,說明,範例,
頭檔案
#include<stdlib.h>
函式原型
int mkstemp(char *template);
說明
mkstemp函式在系統中以唯一的檔案名稱創建一個檔案並打開,而且只有當前用戶才能訪問這個臨時檔案,並進行讀、寫操作。 mkstemp函式只有一個參數,這個參數是個以“XXXXXX”結尾的非空字元串。mkstemp函式會用隨機產生的字元串替換“XXXXXX”,保證 了檔案名稱的唯一性。 函式返回一個檔案描述符,如果執行失敗返回-1。
在glibc 2.0.6 以及更早的glibc庫中這個檔案的訪問許可權是0666,glibc 2.0.7以後的庫這個檔案的訪問許可權是0600。
臨時檔案使用完成後應及時刪除,否則臨時檔案目錄會塞滿垃圾。由於mkstemp函式創建的臨時檔案不能自動刪除,所以執行完 mkstemp函式後要調用unlink函式,unlink函式刪除檔案的目錄入口,但臨時檔案還可以通過檔案描述符進行訪問,直到最後一個打開的進程關 閉檔案操作符,或者程式退出後臨時檔案被自動徹底地刪除。
範例
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int fd;
char temp_file[]="tmp_XXXXXX";
/*Creat a temp file.*/
if((fd=mkstemp(temp_file))==-1)
{
printf("Creat temp file faile./n");
exit(1);
}
/*Then you can read or write the temp file.*/
//ADD YOUR CODE;
close(fd);
unlink(temp_file);
}