2014-04-24 61 views
0

通過使用c語言,我需要在/tmp目錄中創建一個文本文件,但我不知道如何執行此操作。有沒有人知道如何在/tmp文件夾中創建文本文件?使用c語言在Linux中的/ tmp文件夾中創建文本文件

+0

谷歌有關文件的IO – SGG

+0

我知道如何創建在當前目錄下的一個文件夾,但我想你 – hacikho

+0

知道如何創建一個目錄下創建的Linux的/ tmp文件夾中。但你不知道如何創建一個文本文件? – SGG

回答

0

here

#include <stdio.h> 
int main() 
{ 
    FILE * pFile; 
    pFile = fopen ("/tmp/myfile.txt","w"); 
    if (pFile!=NULL) 
    { 
      //write 
     fclose (pFile); 
    } 
    return 0; 
    } 

採取了/tmp/myfile.txt是不是有一個將被創建。

+0

這種方法的問題在於其他一些程序可能使用指定的文件,即''/tmp/thefile.txt''。它也可能是同一個程序的另一個實例。更安全的是使用'mkstemp()'。 – Arun

+0

終於你完成了他的任務。你讓他變得懶惰。 – SGG

+0

@SCG。我明白我從鏈接中提供代碼的原因是爲了強調OP,答案就在那裏。只需進行深思熟慮的搜索。希望OP意識到這一點。 – Prabhu

1

有此

+0

我不想創建一個新的tmp文件夾,我想用linux/tmp文件夾 – hacikho

+0

'mkstemp( )'不會創建一個新的文件夾。 –

+0

http://man7.org/linux/man-pages/man3/mkstemp.3.html – Arun

0
#include <stdio.h> // Defines fopen(), fclose(), fprintf(), printf(), etc. 
#include <errno.h> // Defines errno 

C程序mkstemp功能一般先從 '主要()' 功能。

int main() 
    { 
    int rCode=0; 
    FILE *fp = NULL; 

'fp'將是對文件的引用,用於讀取,寫入或關閉文件。

char *filePath = "/tmp/thefile.txt"; 

'filePath'是一個保存路徑「/ tmp」和文件名「thefile.txt」的字符串。

以下行嘗試以「寫入」模式打開文件,該文件(如果成功)將導致在「/ tmp」目錄中創建文件「thefile.txt」。

fp=fopen(filePath, "w"); 

順便提及,與指定的 「w」(寫入)模式,它 「thefile.txt」 已經存在於 「/ TMP」 目錄時,它都將被覆蓋。

如果無法創建文件,下面的代碼將打印一個錯誤。

if(NULL==fp) 
     { 
     rCode=errno; 
     fprintf(stderr, "fopen() failed. errno[%d]\n", errno); 
     } 

創建文件後,可以寫在這裏:現在

fprintf(fp, "This is the content of the text file.\nHave a nice day!\n"); 

,該文件可以被關閉。

if(fp) 
     fclose(fp); 

全部完成。

return(rCode); 
    } 
+0

這種方法的問題是其他一些程序可能使用指定的文件,即''/tmp/thefile.txt''。它也可能是同一個程序的另一個實例。更安全的是使用'mkstemp()' – Arun

0

下面是一個例子:

char *tmp_file; 
char buf[1000]; 
FILE *fp; 

tmp_file = "/tmp/sometext.txt"; 

fp = fopen(tmp_file, "w"); 

if (fp == NULL) { 
    printf("File open error! %s", tmp_file); 
} 

sprintf(buf, "Hello"); 

fputs(buf, fp); 
fclose(fp);