exec系列系统调用(例如exec和execve)的功能之间有什么区别?

exec系列系统调用(例如exec和execve)的功能之间有什么区别?,第1张

exec系列系统调用(例如exec和execve)的功能之间有什么区别?

使用

man exec
和阅读:

The execv(), execvp(), and execvpe() functions provide an array of pointers to null-terminated strings that represent the argument list available to the new program. The first argument, by convention, should point to the filename associated with the file being executed. The array of pointers must be terminated by a NULL pointer.

execv

int execv(const char *path, char *const argv[]);

所以你传递一个数组作为参数

int execle(const char *path, const char *arg,   ..., char * const envp[]);

几乎相同,但不是一个数组,而是一个值列表(字符串),后面跟着一个数组来指定环境。

这里:

int execvp(const char *file, char *const argv[]);

您正在调用的文件没有路径,因此它希望您

path
在调用之前已经处于正确的位置。

最后但并非最不重要的:

int execve(const char *filename, char *const argv[],       char *const envp[]);

与上一个相似,但是现在有两个数组,用于参数和环境变量。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4987344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存