警告:使用“tmpnam”是危险的,最好使用“mkstemp”[重复]

2024-02-10

(注:这是not重复的问题)

我正在使用 libc 函数tmpnam,并收到以下警告:

warning: the use of 'tmpnam' is dangerous, better use 'mkstemp'

我的问题不是“如何禁用警告”,而是“我应该使用什么函数”?mkstemp没有帮助,因为我没有尝试创建临时文件 - 我正在创建一个临时文件目录。 AFAIK,没有 API 函数可以实现这一点。

所以如果我不应该使用tmpnam, what am我应该用吗?


您正在寻找mkdtemp http://man7.org/linux/man-pages/man3/mkdtemp.3.html:

mkdtemp - create a unique temporary directory

e.g.,

#include <stdlib.h>
#include <string.h>
...
char templatebuf[80];
char *mkdirectory = mkdtemp(strcpy(templatebuf, "/tmp/mkprogXXXXXX"));

using strcpy确保参数传递给mkdtemp是可写的(c89),或者

#include <stdlib.h>
...
char templatebuf[] = "/tmp/mkprogXXXXXX";
char *mkdirectory = mkdtemp(templatebuf);

与c99。

由于该功能是“新”功能(尽管在 20 世纪 90 年代中期就在 Linux 上提供了,但在过去十年内才标准化),因此您需要在头文件中使用预处理器定义(这可能因平台而异)来打开该功能。其他)。对于 Linux 最简单的是定义_GNU_SOURCE, e.g.,

gcc -D_GNU_SOURCE -o foo foo.c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

警告:使用“tmpnam”是危险的,最好使用“mkstemp”[重复] 的相关文章

  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • JW Player javaScript API 不工作

    我使用 jwplayer version 5 10 2295 和浏览器 chrome 25 My code jwplayer container setup file path width 300px height 100px autost
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • PyCharm 表示 readline 导入未被使用

    我有这个代码 while True cmd input gt if cmd exit break 但我想实现高级文本输入功能 例如命令历史记录 因此我导入了 readline 模块 导入 readline 模块 甚至不使用它 将解锁这些功能
  • 为 NFL api 生成访问令牌

    NFL 有一个 API 服务 link https api nfl com docs getting started index html https api nfl com docs getting started index html
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp

随机推荐

  • MySQL 日期时间 <-> Java 日期

    我使用 Hibernate 并且 MySQL 数据库中有一个日期时间 现在我想将 java util Date 的日期 时间存储到数据库中 所以我可以写 SimpleDateFormat df new SimpleDateFormat yy
  • 如何将 ArangoDB 嵌入桌面应用程序

    我想在我的应用程序中嵌入一个图形数据库 适用于 Windows Linux 和 MAC 我将搜索范围缩小到 ArangoDB 和 OrientDB 我能够让嵌入式 OrientDB 工作 但我仍然想尝试 ArangoDB 来做出明智的决定
  • 元组结构构造函数抱怨私有字段

    我正在开发一个基本的 shell 解释器来熟悉 Rust 在处理 shell 中存储挂起作业的表时 我遇到了以下编译器错误消息 error cannot invoke tuple struct constructor with privat
  • 请确认:Windows Workflow Foundation 现在是一匹值得支持的好马吗?

    我们正在为一家端到端使用 Microsoft 产品的公司选择工作流程解决方案 鉴于 WF4 的消息 它似乎本质上是对以前版本的重写 支持当前版本是明智之举还是我们应该寻找其他地方 即 当前版本是否太糟糕以至于我们不明智地尝试使用它 Haii
  • TensorFlow 和 Numpy 之间的不同结果

    我有以下代码片段 许多西格玛矩阵是由神经网络生成的 并且这些矩阵必须是正定的 所以这是在调试功能中检查的 奇怪的是 Sigma2 没有给出 LinAlgError Matrix is not Positive Defined Error 而
  • JavaScript 用回调替换 - 性能问题

    在 JavaScript 中 您可以在正则表达式字符串替换操作中定义回调处理程序 str replace str 123 etc replaceCallback 假设您有一个字符串和替换的查找对象 var lookup str1 repl1
  • 永远等待 启动

    我无法再在模拟器或 iPhone 上运行我的程序 它编译得很好 没有任何问题 但后来我收到消息 等待启动 它永远发生 这种情况只发生在一个项目中 我终于通过使用 xproj 文件的备份解决了这个问题 问题出在 xproj 文件中 不过 我不
  • Linux 上的 pthread 执行

    我开始在 Linux 上进行 pthread 编程 在第一个程序中我完全感到困惑 下面是我正在运行的程序 include
  • 单击 JButton 时如何删除 JTable 中的当前行?

    我有很多行JTable每行都有删除按钮 我想在单击该行的删除按钮时删除当前行 我怎样才能做到这一点 private JButton button public MyTableButtonEditor1 button new JButton
  • MySQL:使用另一个表中的值作为列别名?

    我们有一张非常时髦的表格 我试图从中得到一个描述性的结果集 该表存储紧密相关但不同的数据类型集合 并且有意义的列 名称 存储在单独的表中 我认为展示比解释更容易 一个简化和抽象的例子 CREATE TABLE IF NOT EXISTS s
  • Xrm 在 Dynamics CRM 2011 中未定义

    当我创建 js 代码时 我似乎无法让 Xrm 变量工作 是否有我需要包含的库或我需要先运行的函数 我是否需要确保正确引用 ClientGlobalContext js aspx 我处于 C 心态 只是想知道是否有任何类型的 include
  • 创建自定义累积总和,计算给定位置列表及其顺序的下游数量

    我试图想出一些代码 基本上可以计算其下方位置的累积值 采用累积总和几乎可以完成此任务 但某些位置对相同的下游点有贡献 此外 最上游的点 或起始点 不会有任何贡献值 并且可以在最终的累积 DataFrame 中保留其起始值 假设每个站点都有以
  • 配置 nginx 发出后台请求

    我正在构建一个应用程序 需要对 api 数据组合使用情况进行一些分析 下面是我的 nginx 配置 location r rewrite r http localhost 3000 sample route1 1 redirect post
  • 与仅使用 Angular 2 路由器相比,了解 ngrx router-store 项目的目的

    我参考的是路由器存储 ngrx 项目 https github com ngrx router store https github com ngrx router store 我不清楚如何使用这个项目 例如 让我们从项目文档中获取以下示例
  • 使用 ReactJS 实现具有状态(启用、部分、禁用)的三态开关的自定义组件

    想要实现类似具有三种状态的开关 ENABLED PENDING DISABLED 有人可以帮我提出这样的组件吗 这是您可以使用的快速功能 它从 0 禁用 循环到 1 部分 最后循环到 2 启用 或任何您想要的值 import React f
  • C++:将读取的二进制文件存储到缓冲区中

    我正在尝试读取二进制文件并将其存储在缓冲区中 问题是 在二进制文件中有多个以空结尾的字符 但它们不在末尾 而是在其他二进制文本之前 因此如果我将文本存储在 0 之后 它只会将其删除缓冲 Example char a this is a 0
  • 将 Nuget 包添加到多项目 Sidewaffle 模板

    我按照此处的指南 在 VS2013 中使用 Sidewaffle 创建了一个基本的多项目模板 https github com ligershark side waffle wiki How to create a multi projec
  • XPath:如何选择没有属性的节点?

    使用 XPath 如何选择没有属性的节点 其中属性计数 0 例如
  • 将搜索微件添加到 ArcGIS Shortlist Story 应用程序时遇到问题

    我在将搜索小部件添加到候选列表应用程序时遇到问题 我已经包含了下面的代码 搜索栏显示 但不起作用 我需要将其放在可以搜索应用程序中包含的公司名称的位置
  • 警告:使用“tmpnam”是危险的,最好使用“mkstemp”[重复]

    这个问题在这里已经有答案了 注 这是not重复的问题 我正在使用 libc 函数tmpnam 并收到以下警告 warning the use of tmpnam is dangerous better use mkstemp 我的问题不是