execl vs execv,参数大小未知

Posted

技术标签:

【中文标题】execl vs execv,参数大小未知【英文标题】:execl vs execv with unknown argument size 【发布时间】:2012-11-22 07:57:47 【问题描述】:

情况是这样的:我必须在我的项目中使用 execl 和 execv ,问题是如果参数大小未知但路径已知,我应该如何使用 execl ?或者我应该每次都使用 execv 。它们之间有什么区别?

例如,如果用户输入: gcc a.c -o a.out 或在另一行输入 ls -l 我如何在 execl 或 execv 中执行它们? ps:我可以找到路径,或者用户可以输入。

另一个主要问题是,如果我有多个路径,我如何分隔我的命令所在的正确路径,如果其他情况,我应该尝试每个路径吗?

【问题讨论】:

【参考方案1】:

当您知道参数列表的大小时使用execl,当您必须动态构造参数列表时使用execv

我不明白第二个问题。但是你不应该在 SO 的一篇文章中问两个问题。用你的第二个问题开始另一个问题,并更清楚地解释你在问什么。

【讨论】:

以上是关于execl vs execv,参数大小未知的主要内容,如果未能解决你的问题,请参考以下文章

linux进程---exec族函数(execl, execlp, execle, execv, execvp, execvpe)

execlp 的参数问题

typedef struct vs struct - “struct”的存储大小未知[重复]

fork与 execve的区别

C语言中 使用execl函数创建一个文件

转---python os.exec*()家族函数的用法