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

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

系统调用

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

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

exec函数

exec函数经过运行其余程序来替换当前进程数组

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

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操作系统

相关文章
相关标签/搜索