exec()函数有很多
久而久之,程序员创建了很多不同版本的exec()
。每个版本的名字都有一些细微差别,而且有各自的参数。虽然exec()
函数的版本众多,但可以分为两组:列表函数和数组函数。
列表函数:execl()、execlp()、execle()
列表函数以参数列表的形式接收命令行参数:
- 程序。
第一个参数告诉exec()
函数将运行什么程序。对execl()
或execle()
来说,它是程序的完整路径名;对execlp()
来讲就是命令的名字,execlp()
会根据它去查找程序。
- 命令行参数。
你需要依次列出想使用的命令行参数。别忘了,第一个命令行参数必须是程序名,也就是说列表版exec()
的前两个参数是相同字符串。
- NULL。
没错,需要在最后一个命令行参数后加上NULL
,告诉函数没有其他参数了。
- 环境变量(如果有的话)。
如果调用了以…e()
结尾的exec()
函数,还可以传递环境变量数组,像“POWER=4
”、“SPEED=17
”、“PORT=OPEN
”……那样的字符串数组。
命令行参数之间的空格会把MinGW弄糊涂。
如果把“I like”和“turles”这两个参数传给exec(),MinGW程序可能会发送三个参数:“I”、“like”和“turtle”。