mkstemp()

頭檔案

#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&#91;&#93;="tmp_XXXXXX";
/*creat a temp file.*/
if((fd=mkstemp(temp_file))==-1)
{
printf("Creat temp file faile./n");
exit(1);
}
/*Unlink the temp file.*/
unlink(temp_file);
/*Then you can read or write the temp file.*/
//ADD YOUR CODE;
/*Close temp file, when exit this program, the temp file will be removed.*/
close(fd);
}

熱門詞條

聯絡我們