p 和 e 在 exec 系列调用中表示什么?

sau*_*405 4 process system-calls exec

lv在 exec 调用中表示参数是通过 list 还是array(vector). 我在某处读到它p表示用户的路径并e表示环境,但不明白这意味着什么?

Am_*_*ful 9

检查Exec 函数上的这个维基百科链接使用 exec() 调用启动进程的这个链接

e – 一个指向环境变量的指针数组被明确地传递给新的过程映像。

“e”后缀版本将环境传递给程序。环境就是这样——一种供程序运行的“上下文”。例如,您可能有一个包含单词字典的拼写检查器。您可以在环境中提供它,而不是每次在命令行上指定字典的位置:

l – 命令行参数单独(一个列表)传递给函数。

例如,如果我想使用参数 -t、-r 和 -l 调用 ls 命令(意思是“按时间对输出进行排序,以相反的顺序,并显示输出的长版本”),我可以将其指定为任一。

p – 使用 PATH 环境变量来查找要执行的路径参数中命名的文件。

“p”后缀版本将搜索 PATH 环境变量中的目录以查找可执行文件。您可能已经注意到,所有示例都有可执行文件的硬编码位置:/bin/ls 和 /usr/bin/spellcheck。其他可执行文件呢?除非您想首先找出该特定程序的确切路径,否则最好让用户告诉您的程序搜索可执行文件的所有位置。标准的 PATH 环境变量就是这样做的。

v – 命令行参数作为指针数组(向量)传递给函数。

参数列表通过指向参数向量的指针指定。

正如在另一个答案中提到的,Unix 系统调用上的这个链接对于进一步阅读也同样很棒。