Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 linux 命令提示符,我注意到在命令提示符中使用命令“cd”和在 C 程序中将该命令用作系统调用的参数时有所不同。
当我使用命令提示符时,目录会变为$home环境变量中的目录,但是如果我使用系统调用来调用它,那么目录不会改变吗?
为什么会这样?
该cd命令是一个 shell 内置命令——当它由 shell 脚本或在命令提示符处执行时,它直接由该 shell 解释,并更改 shell 进程的工作目录。
cd
当您cd从system()调用中运行命令时,该命令将传递给 shell 子进程,并更改该进程的工作目录,该目录会立即退出。父进程的工作目录保持不变。
system()
如果需要改变当前进程的工作目录,chdir()直接调用。请注意,您不能更改其他进程的工作目录(子进程独立于其父进程)。
chdir()