tmpnam 为什么不安全

2025-05-11 01:45:41
推荐回答(1个)
回答1:

  tmpnam在申请一个临时文件时,并没有实际创建该文件,而是在调用该文件时生成该文件,这两个事件中间的事件差会产生一些安全漏洞(例如:另一个进程创建了一个同名的链接)。而mkstemp在申请一个临时文件时,已生成该文件。

  tmpnam介绍
  有时候在程序运行的时候,可能需要创建一个临时文件,保存一些数据,以后再用,在程序退出时希望这些文件能够被自动删除。而创建的时候有希望一次创建成功,不会覆盖可能重名的文件,这时需要使用临时文件。该函数的功能是产生一个唯一的文件名,结果存放在数组sptr中,该函数的主要用途是生成与目录中现有文件名不同的有效路径名字符串,其中sptr中保存了所产生的文件名。标准I/O库中提供了两个函数用来创建临时文件。另外一个是tmpfile。