如何获取临时文件名?

2024-01-06

我看过一些与我的问题相关的帖子,但没有一个能完全解决这个问题。我需要在标准临时目录中创建一个文件,完成写入后,将其移动到其他位置。这个想法是,该文件在下载时被视为临时文件,在下载完成后被视为永久文件。

我正在尝试通过致电mkstemp http://www.linuxmanpages.com/man3/mkstemp.3.php or tmpfile http://www.linuxmanpages.com/man3/tmpfile.3.php, then rename http://www.linuxmanpages.com/man2/rename.2.php当我写完之后。但是,我需要文件的完整路径来调用重命名,并且显然从文件描述符(由 mkstemp 返回)或 FILE *(由 tmpfile 返回)获取文件名并不是一个简单的过程。这是可以做到的,但并不优雅。

是否有系统调用可以创建临时文件并为我提供名称?我知道关于mktemp http://www.linuxmanpages.com/man3/mktemp.3.php和相关的调用,但它们要么不能保证是唯一的,要么已被弃用。或者也许有更好的方法来完成创建、写入和移动临时文件。


看起来像mkstemp http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkstemp.html实际上是要走的路。

int fd;
char name[] = "/tmp/fileXXXXXX";
fd = mkstemp(name);
/* Check fd. */

在此调用之后,您将获得一个有效的描述符fd以及相关文件的名称name.

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

如何获取临时文件名? 的相关文章

  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • 并行运行多个任务

    我有一个代理列表 每个代理都会访问不同的站点并从站点中提取所需的数据 目前它一次只做一个 但我希望同时运行 10 20 个任务 这样它就可以一次性从 20 个站点下载 而不是只下载一个 这是我目前正在做的事情 private async T
  • SOAP Web 服务:多台服务器,一个接口

    我有一个场景 需要任意数量的服务器来提供相同的 SOAP Web 服务 我想生成一组代理类 并能够为它们提供一个位置 以便在运行时将它们指向不同的服务器 不幸的是 看起来好像wsdl port节点 子节点wsdl service 要求对特定
  • CMake(Ninja 后端)使用 /MT 编译

    我有一个类似的问题CMake 使用 MT 而不是 MD 进行编译 https stackoverflow com questions 14172856 cmake compile with mt instead of md但有一些差异 我正
  • 如何以编程方式删除受信任的根证书颁发机构中的证书?

    我需要能够从组织中的每台电脑中删除特定的证书 是的 我可以逐个座位 但我要到周四才能完成 而且我没有人力逐个座位 是否有使用 C 的编程方式来执行此操作 我认为你不需要编写任何 C 看看certmgr exe del http msdn m
  • 如何在 Linux 上重新实现(或包装)系统调用函数?

    假设我想完全接管 open 系统调用 也许要包装实际的系统调用并执行一些日志记录 一种方法是使用 LD PRELOAD http scaryreasoner wordpress com 2007 11 17 using ld preload
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我
  • 重载算术运算符

    赋值运算符可以声明为 T 运算符 const t 在类中 但不能以这种方式定义算术运算符 它必须是友元函数 我不明白为什么 你能解释一下吗 算术运算符不必须是友元 那么你可以这样定义 MyClass MyClass operator con
  • 如何在 VIm 和终端中始终拥有相同的当前目录?

    我希望我的终端当前目录跟随我的 VIM 目录 Example 在终端中 gt pwd gt Users rege gt vim 然后在VIM中 cd Users rege project
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • fgets溢出后如何清除输入缓冲区?

    当输入字符串超出其预定义限制时 我遇到了 fgets 的小问题 以下面的例子为例 for index 0 index lt max index printf Enter the d string index 1 if fgets input
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • 让 Windows 尝试读取文件

    我正在对 Windows 文件系统进行某种封装 当用户请求打开文件时 Windows 调用我的驱动程序来提供数据 在正常操作中 驱动程序返回缓存的文件内容 但是 在某些情况下 实际文件没有缓存 我需要从网络下载它 问题是是否有可能让 Win
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap
  • C# 多维数组解析

    我有一个多维数组 内容在调试器中看起来像这样 数组设置为 String s new String 6 4 A B Yes C A B Yes C A B No C A B Yes C A B Yes C A B Yes C A B No C
  • C++ 中的析构函数

    我的 AB h 文件中有一个构造函数 class AB private int i public AB i 0 constructor AB i 0 destructor virtual void methodA unsigned int
  • 稀疏矩阵超定线性方程组c/c++库

    我需要一个库来解决 Ax b 系统 其中 A 是一个非对称稀疏矩阵 每行有 8 个条目 而且可能很大 我认为实现双共轭梯度的库应该没问题 但我找不到一个有效的库 我尝试过 iml 但 iml sparselib 包中缺少一些标头 有小费吗
  • 如何将模型绑定到动态创建的类 nancyfx

    首先感谢任何愿意查看我的问题的人 我对 Nancyfx 还很陌生 在尝试将 JSON 有效负载绑定到动态创建的类时遇到问题 我按照这篇文章中的代码动态创建了该类 在C 中动态创建一个类 https stackoverflow com que
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS

随机推荐

  • 如何在python中发出post请求

    这是卷曲命令 curl H X API TOKEN
  • Boost Log 的琐碎记录器的“惰性求值”是如何工作的?

    跟进明确检查 boost log 过滤器 https stackoverflow com a 50345102 9305398 以下示例使用来自的简单记录器升压日志 https www boost org doc libs master l
  • 如何从 int 转换为 char*?

    我知道的唯一方法是 include
  • 将 JSON 文件导入 Windows 10 上的 Postgresql 11

    我有一个 JSON 文件 C sensors 201802091904 json 该数据文件与 PostgreSQL 安装位于同一本地驱动器上 以下是 JSON 的示例 Data collection of property value p
  • 在 Blackberry Playbook 模拟器中打开 .bar 文件

    您好 我有一个早期版本的 Playbook 应用程序 是我们的一位开发人员在 Flash Builder 中为我们制作的 它是一个 bar 文件 我已经安装了所有必需的 Abode 和 RIM SDK 密钥和模拟器 并且可以在 Flash
  • 如何创建从其他几个组件继承的Delphi组件?

    我发现有关如何创建 delphi 组件的教程很好 但它们只使用现有组件之一作为继承操作的对象 像这样的东西 unit CountBtn interface uses Windows Messages SysUtils Classes Gra
  • 重命名属性名称并更改多个对象的值

    在下面的对象中 我想更改属性名称 thumb to thumbnail 我还想更改的值title包括 span tags 这是我的对象 var data thumb images 01 png title My title thumb im
  • 带键的数组的 Twig for 循环

    我使用 Twig 并且有一个带有如下键的数组 array 1 alpha array 2 bravo array 3 charlie array 8 delta array 9 echo 我想拿到钥匙 1 2 3 8 9 和内容 alpha
  • 无效操作异常

    我创建了一个 WCF 服务 在 IIS 上托管时运行良好 现在 我采用了相同的服务 并在 WPF 中创建了一个主机应用程序 当尝试从该应用程序启动该服务时 出现以下异常 The HttpGetEnabled property of Serv
  • 与 KeyValuePair 键上的列表相交?

    如何根据键插入两个键值对列表 我努力了 List
  • jQuery UI Accordion - 如何完全删除样式?

    我喜欢 jQuery 手风琴 http jqueryui com demos accordion 的功能 但是我不想要这种风格 我想摆脱所有的样式 img 边框 颜色等 我没有看到这个选项 这是他们应该添加的内容 还是我误会了 您可以制作自
  • linux下c语言蓝牙编程

    我正在尝试在 linux ubuntu 中运行基本的 c 代码来搜索蓝牙设备 但我遇到了一些问题 通过使用命令sudo apt get install bluez 要安装所需的blueZ库 说明bluez已经是最新版本了 但出现错误 无法找
  • PHP 正则表达式查找自定义添加的 HTML 标签之间的文本

    我有以下场景 Got an HTML模板将用于的文件mailing 这是一个简化的示例 table tr td Heading 1 td td heading 2 td tr table
  • http.sys 实现

    我们都知道有一个名为 http sys 的二进制文件内核模式驱动程序在我们的 Windows 中 它为我们进行 HTTP 处理 这基本上就是我们所知道的一切 但今天我想 嘿 我们所有的网络东西 比如 TCP IP 之类的东西都在这里 在用户
  • 有充分的理由不使用 ORM 吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 查找并迭代android中的所有短信/彩信

    首先 也是最重要的 我发现了这个answer https stackoverflow com a 6446831 2415237特别有帮助 然而 这让我想知道如何找到这些信息 我似乎不知道如何迭代收件箱中的所有消息 我当前的解决方案使用Ur
  • Clearerr 是用来做什么的?

    我试图了解 stdio 功能何时clearerr 应该使用 例如 如果我fread or fwrite 在有效的FILE 并得到一个简短的计数ferror是真的 我能做什么 从我到目前为止所读到的来看 fread and fwrite 很健
  • 打字稿:找不到名称“代理”

    我需要声明一个 Proxy 类型的新变量 来自 ES6 规范 myProxy Proxy 但我收到下一个错误 找不到名称 代理 我该如何修复它 假设您将目标设置为es2015或包括库es2015使用lib选项 您可以创建一个Proxy 诀窍
  • 更新包并防止其恢复为原始状态

    我想升级包 ggplot2 library ggplot2 packageDescription ggplot2 Version gt 0 8 3 但当前版本是0 8 7 我尝试了 update packages 它似乎工作正常 但它仍然返
  • 如何获取临时文件名?

    我看过一些与我的问题相关的帖子 但没有一个能完全解决这个问题 我需要在标准临时目录中创建一个文件 完成写入后 将其移动到其他位置 这个想法是 该文件在下载时被视为临时文件 在下载完成后被视为永久文件 我正在尝试通过致电mkstemp htt