首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用execl命令

使用execl命令
EN

Stack Overflow用户
提问于 2014-05-02 22:04:17
回答 2查看 11.7K关注 0票数 5

我在试着理解执行命令的各个部分。我对用c++编程很陌生,对linux不太熟悉。我被告知要使用这个命令执行几个语句,而且在大多数情况下,我认为我理解它。

execl(location here, followed by arguments, terminated by a null pointer)

我的任务是使用以下命令执行以下命令:

  • 进程状态树,ps -林 execl("/bin/ps", "ps", "--forest", (char*) NULL);,这是工作的
  • 日期和时间,日期 execl("/bin/date", "date", 0, (char*) NULL);这是有用的。
  • “财富”命令 execl("/usr/bin/fortune", "fortune", (char*) NULL);,这不起作用。 execl("/bin/fortune", "fortune", (char*) NULL);,这不起作用。

“财富”命令的主要问题是,要么我遗漏了一个参数,要么我找错了位置。我假设这是位置,因为我可以用命令行中的"fortune“来执行它。我已经找过正确的地点了,但没有找到任何提及的地方。

编辑:多亏了ojblass,这个位置被验证为'/usr/bin/fortune',这意味着我的论点肯定不正确。

  • 长目录列表代码 execl("/usr/bin/find", "find", "/", "-name", "date", "-maxdepth", "3", "2>", "/dev/null", (char *)NULL);,这不起作用。

编辑:更改为:execl("/usr/bin/find", "find", "/", "-name", "date", "-maxdepth", "3", "2>/dev/null", (char *)NULL);

这应该是在根目录中查找具有给定名称的文件,最大深度为3,然后将所有错误消息发送到/dev/null。我完全听不懂这个命令。

  • 将信号处理程序安装为捕获信号的代码的代码。

对于这个问题,我不知道如何处理,但我知道我需要接受他们给出的参数,然后将其传递到我创建的处理程序中。所以,就像:

代码语言:javascript
复制
`execl("/bin/I don't know this part maybe 'signal'?",cmd[1], (char*) NULL);`

然后把它传递给signal(cmd[1], sighandler);

写完这篇文章后,我会说我主要在努力理解命令,而不是使用execl()。

如果你能纠正任何地方,我搞砸了,或给一个命令的解释,这将是非常感谢!

谢谢!

编辑:解决方案已张贴在评论中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-02 22:53:01

尝试使用execlp,在PATH环境变量指定的目录中搜索可执行文件:

代码语言:javascript
复制
execlp("fortune","fortune",(char*)NULL);

execlp的第一个参数是可执行文件的名称。其余的是传递给char *argv[]的参数,以NULL指针结尾(第一个参数是程序的名称)。

票数 3
EN

Stack Overflow用户

发布于 2014-05-04 22:52:16

概述:

  • 进程状态树 execl("/bin/ps“、"ps”、“-林”、(char*) NULL);
  • 日期和时间 execl("/bin/date","date",0,(char*) NULL);
  • “财富”命令 execl("/usr/bin/fortune“、"fortune”、(char*) NULL);

结果,我在shell中错误地解析了“F”的大小写。这确实有效。

  • 长目录列表代码 如果(strlen(cmd)>2) { cmdstrlen(cmd)-1='\0';execl("/bin/ls“、"ls”、"-l“、(char *) &cmd 2、(char *) NULL);} execl("/bin/ls”、"ls“、"-l”、(char *) NULL);
  • 安装基于int的信号处理程序的代码。 signum = atoi((char *)&cmd1 1); 信号(信号,信号);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23437633

复制
相关文章

相似问题

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