L14c程序执行的环境变量

c程序执行的环境变量

C程序中环境变量相关的函数如下

#include <stdlib.h>

char *getenv(const char *name);
int setenv(const char *name, const char *value, int overwrite);
int putenv(char *string);
int unsetenv(const char *name);
int clearenv(void);

environ全局变量保存用户环境,以上函数可以获取、设置、删除、清空环境变量

相应的shell命令如下

echo $PATH 打印PATH环境变量
export PATH=$PATH:./ 设置环境变量
unset PATH 删除环境变量
env 显示所有环境变量

execl函数

execve(执行文件)在父进程中fork一个子进程,在子进程中调用exec函数启动新的程序。exec函数一共有六个,其中execve为内核级系统调用,其他(execl,execle,execlp,execv,execvp)都是调用execve的库函数。

execve

int execve(const char * filename,char * const argv[ ],char * const envp[ ]);

int execl(const char *path, const char *arg, ...);

execl()其中后缀"l"代表list也就是参数列表的意思,第一参数path字符指针所指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... 最后一个参数须用空指针NULL作结束。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容