posix_spawn 设置环境变量
时间: 2023-07-27 18:08:50 浏览: 153
在使用 `posix_spawn` 函数创建进程时,可以通过设置 `posix_spawnattr_t` 结构体中的 `posix_spawnattr_envp` 字段来设置子进程的环境变量。具体步骤如下:
1. 定义 `posix_spawnattr_t` 结构体,并初始化:
```c
posix_spawnattr_t attr;
posix_spawnattr_init(&attr);
```
2. 定义环境变量数组,注意最后一个元素必须是 `NULL`:
```c
char *env[] = {"PATH=/usr/bin", "LANG=en_US.UTF-8", NULL};
```
3. 将环境变量数组设置到 `posix_spawnattr_t` 结构体中:
```c
posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETPGROUP);
posix_spawnattr_setpgroup(&attr, 0);
posix_spawnattr_setenvp(&attr, env);
```
4. 调用 `posix_spawn` 函数创建进程:
```c
pid_t pid;
char *argv[] = {"/bin/echo", "Hello, World!", NULL};
posix_spawn(&pid, "/bin/echo", NULL, &attr, argv, env);
```
这样,在创建子进程时就会将指定的环境变量传递给子进程。
阅读全文