posix_spawn创建新的进程时,设置新的工作目录
时间: 2023-12-03 09:44:05 浏览: 45
posixspawn:shell中posix_spawn的功能
5星 · 资源好评率100%
可以使用`posix_spawnattr_setcwd_np`函数来设置新进程的工作目录。该函数需要传入两个参数:`posix_spawnattr_t`类型的指针和字符串类型的新工作目录路径。
示例代码如下:
```c
#include <spawn.h>
#include <stdlib.h>
int main() {
posix_spawnattr_t attr;
pid_t pid;
posix_spawnattr_init(&attr);
char *new_cwd = "/path/to/new/cwd";
posix_spawnattr_setcwd_np(&attr, new_cwd);
char *argv[] = { "/bin/ls", "-l", NULL };
int ret = posix_spawn(&pid, argv[0], NULL, &attr, argv, NULL);
if (ret == 0) {
// Child process successfully spawned
} else {
// Error occurred
}
posix_spawnattr_destroy(&attr);
return 0;
}
```
在上述代码中,`posix_spawnattr_setcwd_np`函数设置了新的工作目录为`/path/to/new/cwd`。接着,使用`posix_spawn`函数来启动新进程。在新进程中,使用`/bin/ls -l`命令来列出该目录下的文件和目录。
阅读全文