C++程序 创建临时文件

C++程序 创建临时文件

C++程序中,有时需要在运行时临时创建一些文件去存储中间数据,或者提供给其他模块进行处理。这篇文章将会介绍如何在C++程序中创建临时文件。

使用tmpnam函数创建临时文件

首先,我们介绍一个C++语言提供的函数 tmpnam() 可以用来创建临时文件。此函数接收一个字符数组指针作为参数,用于存储临时文件名。

下面是使用 tmpnam() 函数创建临时文件的示例代码:

#include <stdio.h>

int main() {
    char buffer[L_tmpnam];
    tmpnam(buffer);
    printf("临时文件名是: %s\n", buffer);
    return 0;
}

输出:

临时文件名是: C:\Users\USER\AppData\Local\Temp\filekTcVl6

这个函数的缺点是不够安全,因为它会返回已经存在的文件名,所以最好是使用下面介绍的函数。

使用mkstemp函数创建临时文件

mkstemp() 函数用于创建一个唯一的临时文件,并返回该文件的文件描述符。

下面是使用 mkstemp() 函数创建临时文件的示例代码:

#include <iostream>
#include <cerrno>
#include <cstring>

#include <fcntl.h>
#include <unistd.h>

int main() {
    int fd;
    char filename[] = "/tmp/XXXXXX";   //创建一个模板字符串
    mode_t mode = S_IRWXU | S_IRWXG;

    fd = mkstemp(filename);    //生成临时文件名并创建文件
    if (fd == -1) {
        std::cerr << "创建临时文件失败\n"
                  << "错误信息:" << std::strerror(errno) << std::endl;
        return 1;
    }

    std::cout << "临时文件名是:" << filename << std::endl;
    std::cout << "文件描述符是:" << fd << std::endl;

    // 做你需要做的事情
    // ...

    close(fd);   // 关闭文件描述符
    unlink(filename);   // 删除临时文件
    return 0;
}

输出:

临时文件名是: /tmp/gEvpep
文件描述符是: 3

总结

在C++程序中,我们可以使用 tmpnam() 函数或者 mkstemp() 函数来创建临时文件。其中 mkstemp() 函数创建的临时文件是唯一的,并且更加安全,所以我们强烈建议使用这个函数来创建临时文件。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 示例