3

スレッド内で chdir すると、親プログラムの cwd に影響しますか?

4

2 に答える 2

8

はい。

マルチスレッド アプリケーションで相対パスが必要な場合はat()、関数のバージョンを使用するのが最も安全です。たとえば、次のopenat()ようになりopen()ます。

int openat(int dirfd, const char *pathname, int flags);

最初のパラメータは、ディレクトリへの fd です。パスはそのディレクトリからの相対パスです。

于 2012-11-18T09:23:28.220 に答える
1

はい、現在のディレクトリがプロセスのすべてのスレッドによって共有されているため、「親プログラム」(スレッドのプロセスの最初のスレッド) が影響を受けます。

http://linux.die.net/man/7/pthreads

于 2012-11-18T09:29:22.830 に答える