posix_spawn创建进程时更改工作目录 linux系统通用的方式
时间: 2023-08-09 14:04:55 浏览: 101
在使用 `posix_spawn` 函数创建新进程时,可以通过设置 `posix_spawn_file_actions_t` 对象中的文件操作来更改子进程的工作目录。
具体步骤如下:
1. 创建 `posix_spawn_file_actions_t` 对象。
```c
posix_spawn_file_actions_t file_actions;
posix_spawn_file_actions_init(&file_actions);
```
2. 调用 `posix_spawn_file_actions_addchdir()` 函数设置子进程的工作目录。
```c
posix_spawn_file_actions_addchdir(&file_actions, "/path/to/new/directory");
```
3. 在调用 `posix_spawn()` 函数时,将 `file_actions` 对象作为参数传入。
```c
pid_t pid;
char *argv[] = { "/path/to/new/program", NULL };
int ret = posix_spawn(&pid, "/path/to/new/program", &file_actions, NULL, argv, NULL);
```
4. 使用 `posix_spawn_file_actions_destroy()` 函数释放 `file_actions` 对象。
```c
posix_spawn_file_actions_destroy(&file_actions);
```
这样,就可以在创建子进程时更改子进程的工作目录。
阅读全文