Head First C 第九章 进程与系统调用 exec函数

原创
2016/04/03 12:06
阅读数 134

Head First C 第九章 进程与系统调用 exec函数

系统调用

C程序无论做什么,都要靠操作系统。如果它想与硬件打交道,就要进行系统调用 系统调用是操作系统内核的函数。

什么是内核? 在大部分计算机上,系统调用就是系统内核中的函数。

exec函数

exec函数通过运行其他程序来替换当前进程

进程是程序在存储器上的一个实例。

exec函数有很多,可以分成两种,列表函数数组函数

  1. 列表函数以参数列表的形式接收命令行参数。
    1. 包含execl(),execle(),execlp()
    2. 程序:第一个参数告诉exec()将运行什么程序,对于execl(),execle()来说,是程序的完整路径,对execlp()来说,是命令的名字。
    3. 命令行参数:你需要依次列出想使用的命令行参数,别忘了,第一个命令行参数必须是程序名,也就是说,execl系的函数,前两个参数都是程序名。
    4. NULL:要在最后一个命令行参数后加上NULL,告诉函数没有其他参数了。
    5. 环境变量:如果有的话。如果是execle(),则可以传递一个环境变量字符串数组{"POWER=4","JUICE=peach and apple",NULL}注意环境变量字符串数组也要以NULL结尾。
  2. 数组函数以数组的形式接收命令行参数。
    1. 包含exev(),exevc(),exevp()
    2. 跟列表函数不同之处在于,传递命令行参数的形式是数组。
  3. exec函数中l v e p代表的含义
含义 字符
参数列表 l
参数数组/向量 v
根据PATH查找 p
环境变量 e
  1. exec()函数调用成功后,旧的程序在exec()语句之后的代码将不会执行。
代码

exec function sample

展开阅读全文
打赏
1
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
1
分享
返回顶部
顶部