问题标签 [mkstemp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
53 浏览

c++ - 文件创建并不总是成功

我需要在/tmp路径中创建 1000 个临时文件。下面是我使用 mkstemp 的方法(不受竞争条件的影响),但文件创建仅限于 500 个,其余的都失败了。

注意:我在完成工作后删除了文件。

有人可以解释为什么这种方法会失败并提出更好的方法(如果有的话)吗?

0 投票
1 回答
214 浏览

linux - Linux - mkstemp64 如何创建隐藏文件,如何在文件系统中看到它

背景:

在 CentOS 7 x86_64 上。我正在使用applydeltarpm,并且在从增量创建新 RPM 时磁盘空间不足。我在应用过程中观察到/磁盘空间使用率增加到 100%,但无法使用ls -l /tmp或找到卷上的工作/临时文件find /tmp -mmin -1 -type f

我将applydeltarpm源代码更改为使用/var/tmp而不是/tmp,并重建了 RPM。现在 apply 与 modified 一起工作applydeltarpm,因为/var/tmp有更多的磁盘空间。但我仍然找不到使用创建的临时文件mkstemp64

问题:

创建的临时文件mkstemp64似乎“不存在”,但仍然作为创建者的文件描述符存在,并且在applydeltarpm创建大型 RPM 时使用了相当大的磁盘空间(在慢速磁盘上应用 1 小时)。文档说创建了mkstemp64一个实际文件。并且源代码显示模板文件名为/tmp/deltarpmpageXXXXXX. 但是不存在具有该模板名称的文件。

这个临时文件如何能够在系统上创建而不用通常的目录列表找到ls,或者find. 我怎样才能在系统中找到这些“不存在”的文件?

(我很好奇,因为我也在监控系统安全)

参考:

https://github.com/rpm-software-management/deltarpm/blob/master/applydeltarpm.c

https://www.mkssoftware.com/docs/man3/mkstemp.3.asp

mktemp() 函数根据模板参数返回一个唯一的文件名。在生成它时,当前目录中没有文件具有该名称。实际上没有创建文件,因此其他应用程序可能会创建具有此名称的文件。

mkstemp() 函数与 mktemp() 类似,它基于模板创建一个唯一的文件名;然而, mkstemp() 实际上创建文件并返回它的文件描述符。创建的文件的名称存储在模板中。

mkstemp64() 函数与 mkstemp() 函数相同,只是打开文件时设置了 O_LARGEFILE 标志。

0 投票
1 回答
509 浏览

c++ - EiffelStudio 编译错误:使用 `tempnam' 很危险,最好使用 `mkstemp'

我正在使用通过 Arch 中的 AUR 安装的 eiffelstudio-bin 17.05.100416-1。

当我尝试运行默认的 hello world 项目时,错误列表选项卡中出现此错误:

在“输出”选项卡的“外部编译”下:

显然,hello world 程序不起作用。

我正在使用 gcc 7.2.1+20171224-2,如果它有用的话。

我能做些什么?

提前致谢。

0 投票
1 回答
1116 浏览

python - Pycharm - 无法连接到控制台进程

在Tools中按 Python 控制台时,我无法连接到控制台进程。

解释器尝试“导入 mkdtemp,mkstemp”但无法导入mkdtemp

我试图检查项目的设置是否有问题,但找不到。

0 投票
2 回答
1816 浏览

python - tempfile.mkstemp 权限设置

tempfile.mkstemp用来生成一个随机可用的文件名并用os.fdopen. 然后我通过将文件名传递给任务celery

此任务打开文件,处理内容,最后删除文件。在测试这工作正常,但是我意识到这将在我的实时环境中中断,其中运行任务的用户与创建文件的用户不同。

这意味着用户无法打开文件,因为tempfile.mkstemp将权限设置为600( -rw-------)。

我不能让两个进程由同一个用户运行,那么有什么方法可以修改由设置的文件权限tempfile.mkstemp吗?

我在 Ubuntu 14.04 上运行 Python 3.6。

0 投票
1 回答
564 浏览

c++ - Windows 的 mkstemp() 实现以写入临时文件

我想通过 C++ 在 Windows 中的给定临时目录路径中创建临时文件。mktemp()完成所需的工作,但它只创建 26 个唯一文件。mkstemp()在 Linux 中运行良好,但在 Windows 中没有。所以请帮助我mkstemp()在 Windows 中使用功能或建议替代方案?

0 投票
1 回答
914 浏览

python - 用 mkstemp 指定文件名,找不到文件

我需要能够创建一个具有指定文件名的临时文件并将数据写入其中,然后将带有文件名的文件与其他文件一起压缩:

我想我一定是误解了 mkstemp 的工作原理,我在这里的第一行代码中得到了错误:

FileNotFoundError: [Errno 2] No such file or directory: '~/path/to/working/directory/filenameq5st7dey.bin'

在将后缀放在文件上之前,看起来一堆垃圾被添加到文件名中。我已经尝试过不带后缀的方法,但文件名末尾仍然有垃圾。

除了文件名中的垃圾之外,为什么我会收到文件未找到错误,而不是在我的目录中创建一个具有该名称的临时文件(加上垃圾)?

0 投票
2 回答
1279 浏览

mkstemp - 无法创建临时文件 - mkstemp:没有这样的文件或目录

在 centos 中安装软件包时yum install <package> 它不起作用并抛出错误为 Cannot create temporary file - mkstemp: No such file or directory