Linux下建立臨時檔案

來源:互聯網
上載者:User
已移到:http://www.wypblog.com/archives/172

        臨時檔案是一個暫時用來儲存資料的檔案。如果使用建立普通檔案的方法來建立檔案,則可能遇到檔案是否存在,是否有檔案讀寫權限的問題。Linux系統下提供的建立唯一的臨時檔案的方法如下:

#include<stdio.h>char *tmpnam(char *s);FILE *tmpfile();

         函數tmpnam()產生一個唯一i的檔案名稱。如果參量為NULL,則在一個內部使用的緩衝區內產生檔案名稱,當下一次調用該函數的時候,則可能覆蓋該檔案名稱。如果參數不是為NULL,則名字拷貝到字串中,字串的長度至少為L_tmpnam,它定義在stdio.h中。如果不成功則函數返回NULL。函數tmpfile()則返回一個臨時檔案的描述符,檔案的開啟屬性是讀和寫。相當於使用fopen以w+開啟。如果不成功則返回NULL。

        下面是一個簡短的列子。

#include<stdio.h>int main(){char tmpname[L_tmpnam];char *filename;FILE *fp;filename = tmpname(tmpname);printf("Temporary file name is %s\n", filename);fp = tmpfile();if(fp){printf("Temporary file opened!\n");}else{perror("tmpfile");}return 0; }

          此外,還有兩個函數也可以建立臨時檔案:

#include<stdio.h>char *mktemp(char *template);int mkstemp(char *template);

        函數mktemp()從給定的模組template中建立唯一的臨時檔案名稱。模版可以是檔案路徑的首碼,模版的最後6個字元必須是“XXXXXX”,比如:

char template[L_tmpnam];char *filename;strcpy(template, "/temp/wypXXXXXX");filename = mktemp(template);printf("Temporary file name is %s\n", filename);

       函數mkstemp()類似於tmpfile(),但是開啟的檔案相當於使用提供底層的檔案操作函數open()開啟檔案。

轉載請註明: 轉載自過往記憶(http://www.wypblog.com/)

本文連結地址: Linux下建立臨時檔案(http://www.wypblog.com/archives/172)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.