gpt4 book ai didi

linux - 如何以编程方式在 linux 系统中的路径中创建文件以及丢失目录?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:36 25 4
gpt4 key购买 nike

我想在我的程序中在linux系统上创建一个文件,比如/a/b/c/test,目前我只有目录/a存在,我想在我的程序中这样做,有没有什么函数可以在一次交易中创建文件以及丢失的目录(即创建 b/c/test)?如果路径上缺少目录,open、fopen、mkdir 似乎都无法工作。谢谢。

最佳答案

来自strace mkdir -p a/b/c:

mkdir("a", 0751)                        = 0
open("a", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW) = 3
fchdir(3) = 0
close(3) = 0
mkdir("b", 0751) = 0
open("b", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW) = 3
fchdir(3) = 0
close(3) = 0
mkdir("c", 0751) = 0

换句话说,您必须自己调用mkdir(),在每个目录的循环中,然后创建文件。 mkdir exe 就是这样做的(在 C 中)。为什么不使用 execve 运行 mkdir -p/a/b/c 命令?当然,为调用正确设置了 C 内容。

关于linux - 如何以编程方式在 linux 系统中的路径中创建文件以及丢失目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10826978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com