91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

unix編程創建前綴固定的臨時文件的方法

發布時間:2021-07-26 14:23:03 來源:億速云 閱讀:105 作者:chen 欄目:開發技術

這篇文章主要介紹“unix編程創建前綴固定的臨時文件的方法”,在日常操作中,相信很多人在unix編程創建前綴固定的臨時文件的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”unix編程創建前綴固定的臨時文件的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

參數:
pathname,存儲臨時文件的路徑文件名,需要手動free()掉。
dir,臨時文件的路徑,如果TMPDIR環境變量不為空,則此參數被忽略,轉而使用環境變量。
pfx,臨時文件名的前綴,只使用前5個字符。
注:
創建的臨時文件需要手動unlink()掉。

創建臨時文件的函數

代碼如下:

int  Make_temp_file(char **pathname,const char *dir,const char *pfx){
 char *ptr,*tmp;
 size_t len;
 int fd;
 debug_assert("Invalid pointer","Make_temp_file()",pathname);
 /*前綴只能是多于5字符*/
 if(pfx && (len=strlen(pfx))>0){
  tmp=(char*)Malloc((len>5?5:len)+1);
  strncpy(tmp,pfx,len>5?5:len);
 }
 else
  tmp=NULL;
 ptr=tempnam(dir,tmp);
 if(tmp)free(tmp);
 len=strlen(ptr);
 tmp=(char*)Malloc(len+6+1);
 if(snprintf(tmp,len+6+1,"%sXXXXXX",ptr)==-1)
  err_sys(errno,"snprintf() error");
 free(ptr);
 fd=Mkstemp(tmp);
 *pathname=tmp;
 return fd;
}

測試程序

代碼如下:

#include "wrap_ext.h"
int main(int argc,char **argv){ int fd; char *path; if(argc!=3)  err_quit(-1,"usage %s <dir> <prefix>",argv[0]); fd=Make_temp_file(&path,argv[1][0]==' '?NULL:argv[1],argv[2][0]==' '?NULL:argv[2]); err_msg("temporary file path:%s",path); Close(fd); Unlink(path); free(path); return EXIT_SUCCESS;}

測試結果

代碼如下:

root@U-SERVER:/home/apu/sysinfo# ./tmpfile " " " "
temporary file path:/tmp/fileq55hoF8swFfa
root@U-SERVER:/home/apu/sysinfo# ll /tmp/fileq55hoF8swFfa
ls: cannot access /tmp/fileq55hoF8swFfa: No such file or directory
root@U-SERVER:/home/apu/sysinfo# ./tmpfile " " tmp_
temporary file path:/tmp/tmp_0rzhqozlthxW
root@U-SERVER:/home/apu/sysinfo# ./tmpfile /home tmp_
temporary file path:/home/tmp_phzxvRrp33OL

到此,關于“unix編程創建前綴固定的臨時文件的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峨县| 辽宁省| 大田县| 襄垣县| 高碑店市| 涿州市| 竹北市| 洮南市| 寿宁县| 东港市| 礼泉县| 聊城市| 尼勒克县| 彭泽县| 渭南市| 阿城市| 南城县| 石阡县| 哈巴河县| 普兰店市| 汕尾市| 佛冈县| 沅江市| 府谷县| 乃东县| 白沙| 岐山县| 潼南县| 资兴市| 中牟县| 抚顺县| 新余市| 阿拉尔市| 习水县| 南陵县| 中西区| 乌拉特中旗| 乌鲁木齐县| 凤台县| 阳朔县| 塘沽区|