这个原型:

int execlp(const char *file, const char *arg, ...);

说execlp是一个可变参数函数。它需要2个const char *。其余的参数(如果有的话)是要转移到我们要运行的程序的附加参数 – 也是char * – 所有这些都是C字符串(最后一个参数必须是NULL指针)

所以,文件参数是要执行的可执行文件的路径名。 arg是我们想在可执行文件中显示为argv [0]的字符串。按照惯例,argv [0]只是可执行文件的文件名,通常它被设置为与文件相同。

现在是给予可执行文件的附加参数。

说你从命令行/ shell运行:

$ ls

那将是execlp(“ls”,“ls”,(char *)NULL);

或者如果你跑

$ ls -l /

那将是execlp(“ls”,“ls”,“-l”,“/”,(char *)NULL);

所以对execlp(“/ bin / sh”,…,“ls -l / bin / ??”,…);

在这里你要去shell,/ bin / sh,你给shell命令执行。该命令是“ls -l / bin / ??”。您可以从命令行/ shell手动运行它:

$ ls -l /bin/??

现在,你如何运行一个shell并告诉它执行一个命令?你打开你的shell的文档/手册页并阅读它。

你想要运行的是:

$ /bin/sh -c "ls -l /bin/??"

这变成了

execlp("/bin/sh","/bin/sh", "-c", "ls -l /bin/??", (char *)NULL);

边注:

/ bin / ??正在进行模式匹配,此模式匹配由shell完成,并扩展为/ bin /下的所有文件,具有2个字符。如果你这样做的话

execlp("ls","ls", "-l", "/bin/??", (char *)NULL);

可能没有什么会发生(除非有一个文件实际上命名为/ bin / ??),因为没有shell解释和扩展/ bin /?

linux中的execlp函数的作用,我不明白execlp()在Linux中的工作原理相关推荐

  1. linux中的execlp函数的作用,我不明白execlp()在Linux中的工作方式

    小编典典 这个原型: int execlp(const char *file, const char *arg, ...); 说execlp是一个变量参数函数.这需要2 const char *.其余 ...

  2. java中的string函数_java中string.trim()函数的作用实例及源码

    trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...

  3. C语言中内联函数的作用 inline

    C语言中内联函数的作用 inline C语言中内联函数到底有什么作用? 试想一下,每当我们在假设就在主函数中调用另外一个函数的时候,那么这个函数就要入栈或者出栈,比如说下面的一个例子: 点击(此处)折 ...

  4. java中trim_java中string.trim()函数的作用实例及源码

    trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...

  5. java中string.trim()函数的作用

    java中string.trim()函数的作用 trim的中文含义是修剪,通过其字面意思,我们不难理解这个函数是对字符串进行一定程度的修改删除.那么,具体是如何实现的呢? public static ...

  6. Python使用matplotlib可视化箱图、seaborn中的boxplot函数可视化分组箱图、在箱图中添加抖动数据点(Dot + Box Plot)

    Python使用matplotlib可视化箱图.seaborn中的boxplot函数可视化分组箱图.在箱图中添加抖动数据点(Dot + Box Plot) 目录

  7. C语言中fun的功能是将字符串,下列给定的程序中,fun()函数的功能是:将p所指字符串中......

    下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的"单词"是指有空格隔开的字符串).例如,若输入: I am a student to ...

  8. php中的sql函数的作用,PHP实用函数9

    10个不太为人所知的,但实用的PHP函数 10个不太为人所知的,但实用的PHP函数 您的评价: 较差 收藏该经验 阅读目录 php_check_syntax highlight_string show ...

  9. C++中virtual 虚函数的作用介绍

    1,介绍 虚函数是定义在基类中的函数,子类必须对其进覆盖.在类中声明虚函数的格式: virtual void display();  2,作用 (1)定义子类对象,并调用对象中未被子类覆盖的基类函数A ...

最新文章

  1. android studio x86虚拟机,Android studio在运行虚拟机的时候出现这种情况怎么办?
  2. 博士申请 | 南洋理工大学骆思强老师招收大数据/机器学习方向博士生、博士后...
  3. .Net开源的跨平台爬虫框架 DotnetSpider
  4. 闪光灯slave是什么意思_闪光灯实战讲解 | 室内光线+闪光灯使用配合=完美光效...
  5. css圆角box(宽度自适应)(百度知道挖出)
  6. html toast 插件,基于Bootstrap4的Toast提示插件
  7. Xiaojie雷达之路---TI实战笔记---OSAL layer说明
  8. Axure制作微信APP原型(二)登录注册模块
  9. Ice的HelloWorld(Java)
  10. CCF系列题解--2015年3月第三题 节日
  11. vue3 Component inside <Transition> renders non-element root node that cannot be animated.
  12. 酷睿i5 12500H相当于什么水平 i512500H属于哪个档次
  13. HTML 修改滚动条样式
  14. macOS Monterey升级
  15. 数据分析有什么证书吗?多数小伙伴都认可CPDA
  16. 怎样使用nat和桥接方式解决虚拟机联网问题
  17. AI助力 —— 软件开发、学习、生活
  18. AI 微信自动聊天机器人
  19. java 磁力链接下载_java构建磁力链接 返回数据解码
  20. 支付宝手机H5支付笔记

热门文章

  1. python —— float转int时四舍五入
  2. Linux搭建ss5 (socks5)代理服务器
  3. Mooplab(新网银行杯)
  4. python面向对象编程中方法和属性_Python面向对象编程中关于类和方法的学习笔记...
  5. 窗口看门狗 WWDG
  6. 年轻人,你对io一无所知
  7. gfoj树形dp 有线电视网
  8. 3S技术在水文、气象、灾害、生态、环境及卫生等领域应用
  9. CSV解析器,CSV解释器,新媒传信上机题,新媒传信面试,java解析csv
  10. 生成决策树所需要的分裂指标(基尼系数)