linux环境 调用posix_spawn()启动新的进程时如何修改工作目录
时间: 2024-02-03 16:13:50 浏览: 92
posixspawn:shell中posix_spawn的功能
5星 · 资源好评率100%
使用 `posix_spawnattr_t` 结构体和 `posix_spawnattr_setcwd()` 函数可以修改新进程的工作目录。
以下是一个示例代码片段:
```c
#include <spawn.h>
#include <unistd.h>
int main() {
char* argv[] = { "/bin/ls", NULL };
posix_spawnattr_t attr;
posix_spawnattr_init(&attr);
posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETSIGMASK);
char* cwd = "/path/to/new/directory";
posix_spawnattr_setcwd(&attr, cwd);
pid_t pid;
int status = posix_spawn(&pid, "/bin/ls", NULL, &attr, argv, NULL);
if (status == 0) {
waitpid(pid, NULL, 0);
}
return 0;
}
```
在上面的代码中,`posix_spawnattr_setcwd()` 被用来设置新进程的工作目录。`posix_spawn()` 函数被用来启动新进程,并且 `waitpid()` 函数被用来等待新进程结束。
阅读全文