📅  最后修改于: 2023-12-03 14:39:53.432000             🧑  作者: Mango
tmpfile()
函数是C++标准库中的标准I/O头文件<cstdio>
中的一个函数,其作用是在操作系统中创建一个临时文件,并返回一个C文件流指针,以便对该临时文件进行读写操作。
FILE *tmpfile(void);
如果tmpfile()
函数成功地创建了一个临时文件,则返回一个指向该临时文件的C文件流指针,否则返回NULL
。
tmpfile()
函数会在操作系统中创建一个临时文件,返回一个指向该临时文件的C文件流指针。利用该指针,程序员可以对该临时文件进行读写操作。该临时文件通常会被自动删除,或在程序结束时由操作系统自动删除。在某些操作系统中,该临时文件还可能被用作进程间通信的手段之一。
#include <cstdio>
int main() {
// 创建临时文件
FILE *tmpFilePtr = std::tmpfile();
if (tmpFilePtr == NULL) {
printf("无法创建临时文件!\n");
return -1;
}
// 向临时文件中写入数据
char data[] = "这是一行测试数据\n";
std::fwrite(data, sizeof(char), sizeof(data), tmpFilePtr);
// 从临时文件中读取数据并输出
std::rewind(tmpFilePtr); // 因为刚才写入了数据,所以要将读写指针移动到文件开头
char buffer[1024];
std::fread(buffer, sizeof(char), sizeof(buffer), tmpFilePtr);
printf("从临时文件中读取的数据为:%s\n", buffer);
// 关闭临时文件,结束程序
std::fclose(tmpFilePtr);
return 0;
}
在上面的示例中,我们首先调用std::tmpfile()
函数创建了一个临时文件,并将其返回的文件指针保存在一个变量中。如果创建失败,则会输出一条错误信息并立即退出程序。接着,我们向该临时文件中写入了一些测试数据,通过std::rewrite()
函数将文件指针移回文件开头,再通过std::fread()
函数从文件中读取到了我们刚才所写入的测试数据,并将其输出到屏幕上。最后我们将文件指针关闭并退出程序。