使用c语言在Linux的/ tmp文件夹中创建文本文件

时间:2014-04-24 04:23:20

标签: c linux

通过使用c语言我需要在/tmp目录中创建一个文本文件,但我不知道如何做到这一点。有没有人知道如何在/tmp文件夹中创建文本文件?

5 个答案:

答案 0 :(得分:1)

这个

mkstemp功能

答案 1 :(得分:0)

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

C程序通常以'main()'函数开头。

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);
   }  

答案 2 :(得分: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,则会创建一个。

答案 3 :(得分: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 );

答案 4 :(得分:0)

其他一些人提到,执行此操作的正确方法是使用mkstemp()函数,这是因为它将确保您的文件具有唯一的名称。

以下是使用方法的快速示例:

//Set file name    
char filename[] = "/tmp/tmpfile-XXXXXX";

//Open the file in rw mode, X's replaced with random chars
int fd = mkstemp(filename);

//Write stuff to file...
write(fd, filename, strlen(filename));

//Close the file
close(fd);

//Do whatever else you want here, including opening and closing the file again

//Once you are done delete the temporary file
unlink(filename);

为了清晰起见,我故意省略了错误检查。