首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自己终端的Execv

自己终端的Execv
EN

Stack Overflow用户
提问于 2013-06-10 21:48:56
回答 1查看 371关注 0票数 0

它的简单出现导致我使用execv():

代码语言:javascript
复制
int main(int argc , char* argv[]){
    char* dir = getcwd(NULL, 0);
    char* command[] = {"echo", "Hello", "World", "!!!", NULL};
    execv(dir, command);
}

根据我的理解,这应该是可行的。它正在编译,但什么也没有发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-10 21:58:57

execvpath参数应该是您想要运行的可执行文件的路径规范,而不仅仅是getcwd返回的目录。从手册页:

这些函数的初始参数是要执行的文件的路径名。

换句话说,你正在寻找类似这样的东西:

代码语言:javascript
复制
execv ("/bin/echo", command);

您当前拥有的代码正在尝试运行您当前的目录,这不太可能有好的结果,如果您检查了execverrno的返回值,您可能已经注意到了:轻推,轻推,眨眼,眨眼:-)

至于如何处理其他程序,您只需将它们的完整路径名替换为/bin/echo即可。

您还应该知道,exec是一个 of functions,每个a都有一些细微的变化。

一些允许传递环境,一些自动搜索可执行文件的路径(取决于给定的名称),还有一些使用变量参数列表而不是数组。如果你想使用自动路径搜索,你应该查看execvp而不是execv,这样你就不必担心可执行文件的位置了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17025472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档