当前位置: 首页 > news >正文

C语言高级操作(四)——exex函数族

文章目录

  • 1、waitpid()函数
  • 2、exec函数族
  • 3、getenv
  • 4、setenv

1、waitpid()函数

  • 函数接口
pid_t waitpid(pid_t pid, int *status, int options)
  • 函数功能
      回收子进程空间
  • 参数

pid :回收子进程的pid
   < -1 回收子进程的进程组ID与传入PID值绝对值相同的子进程空间
  -1 回收任一子进程
  0 回收子进程的进程组ID与调用函数的进程PID值相同的子进程空间
  >0 回收子进程的PID与传入PID相同的子进程空间
status:
  回收子进程结束状态
options:
  设定阻塞与非阻塞
  0       阻塞
  WNOHANG 非阻塞

  • 返回值

  成功返回回收到的子进程PID
  失败返回-1
  设定为非阻塞且没有回收到子进程返回0

1.进程组:
前台进程组
位于终端前台运行的所有进程会位于前台进程组
后台进程组
位于终端后台运行的所有的进程会位于后台进程组
进程组ID:
前台进程组/后台进程组第一个运行的进程的PID将会作为
前台进程组/后台进程组的进程组ID
2.会话组:
依赖于同一终端的所有进程会位于同一会话组中

2、exec函数族

int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg,
                  ..., char * const envp[]);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[],
                  char *const envp[]);

功能:
利用进程空间执行另外一段代码
参数:
l:参数以列表形式传递
p:在系统路径下找要执行的代码
e:执行新代码时更新环境变量
v:参数以指针数组形式传递
返回值
成功无法返回
失败返回-1

3、getenv

char *getenv(const char *name);

功能:
获得环境变量的值
参数:
name:环境变量名
返回值:
成功返回环境变量值的指针
失败返回NULL

4、setenv

int setenv(const char *name, const char *value, int overwrite);

功能:
设置环境变量的值
参数:
name:环境变量名
value:环境变量的值
overwrite:非0 覆盖
0 不覆盖
返回值:

相关文章:

  • 一行代码“黑”掉任意网站
  • 蓝桥杯刷题冲刺 | 倒计时18天
  • 软件测试拿了几个20K offer,分享一波面经
  • 【面试题】大厂面试官:你做过什么有亮点的项目吗?
  • vue后台管理系统
  • ChatGPT-4.0 : 未来已来,你来不来
  • Servlet的详细使用
  • 按键修改阈值功能、报警功能、空气质量功能实现(STM32)
  • 第十四届蓝桥杯模拟赛【第三期】Python
  • 【C++】初识模板
  • 南京邮电大学数据库第三次课后作业
  • 【Linux入门篇】操作系统安装、网络配置
  • 第十九天 Maven总结
  • 今年好像没有金三银四了?
  • 7个最受欢迎的Python库,大大提高开发效率
  • Github的使用
  • 【Arduino 和 MPU6050 加速度计和陀螺仪教程】
  • JavaEE简单示例——基于注解的AOP实现
  • 【进阶数据结构】二叉搜索树经典习题讲解
  • 树莓派(3B):启动流程,系统初始化配置,引脚图图示说明
  • HTB-baby~
  • Docker使用DockerFile部署Go项目
  • 自己设计的网站,如何实现分页功能?(详细代码+注释)
  • O2O、C2C、B2B、B2C是什么意思
  • 带你一文透彻学习【PyTorch深度学习实践】分篇——加载数据集(Dataset类、DataLoader类核心参数讲解)附:实例源代码
  • 基于html+css的图片居中排列
  • Python通用验证码识别OCR库ddddocr的安装使用
  • 「无服务器架构」无服务器架构是应用程序的正确选择?需要考虑利弊。
  • Pycharm中修改git提交代码的账户和用户名【Git追溯注解,git blame】
  • 中介变量、调节变量与协变量