gpt4 book ai didi

pthreads - 在 pthread 中更改目录

转载 作者:行者123 更新时间:2023-12-04 16:45:37 26 4
gpt4 key购买 nike

我的问题是:
如何在不更改其他 pthread 中的当前目录的情况下更改 pthread 中的当前目录,我找到了一个使用 openat() 函数的解决方案,但我没有找到任何解释它如何工作的示例。
使用 chdir() 更改进程中所有 pthread 中的当前目录。
感谢您的任何帮助。

最佳答案

openat()方法是更改​​当前工作目录的替代方法。而不是调用:

chdir("/new/working/directory");
open("some/relative/path", flags);

你改为使用:
dirfd = open("/new/working/directory", O_RDONLY | O_CLOEXEC);
openat(dirfd, "some/relative/path", flags);

这是 POSIX 标准方法,可避免更改线程中进程范围的当前工作目录,但仍可使用相对路径。

还有一种特定于 Linux 的方法可以为当前线程提供自己的当前工作目录,与进程的其余部分分开 - unshare(CLONE_FS); - 但这不是可移植的。

关于pthreads - 在 pthread 中更改目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17053680/

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