【问题标题】:create a temporary file with unpredictable name创建一个名称不可预知的临时文件
【发布时间】:2017-11-02 12:22:41
【问题描述】:

当我们使用 tmpfile 创建临时文件时,在大多数情况下我们无法轻易预测名称。 Coverity 扫描也抱怨它的漏洞。 那么有没有什么函数可以创建一个不容易被猜到的临时文件呢?

【问题讨论】:

  • 问题是什么?
  • 你可以做的是生成一个随机字符串(请搜索互联网如何做到这一点)并使用这个随机字符串在fopen()中命名你的文件。
  • 我在找一个类似tmpfile的函数,当然可以选择调用fopen,但是如果已经有函数为什么要写呢?

标签: c linux temporary-files mktemp


【解决方案1】:

如果你使用 Linux,那么mkstemp

或使用tmpnam

【讨论】:

  • mkstemp()也有一些安全问题,参考this link
  • 标签是 C 而不是 C++。
  • 编辑我的答案:将 std::tmpnam 从 stdio.h 更改为 tmpnam
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 2014-06-15
相关资源
最近更新 更多