通过使用c语言我需要在/tmp
目录中创建一个文本文件,但我不知道如何做到这一点。有没有人知道如何在/tmp
文件夹中创建文本文件?
答案 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);
为了清晰起见,我故意省略了错误检查。