EXEC家族函数一览

  • 以execl抛砖引玉
    • 与shell交互
      • shell命令
      • shell脚本
    • 与其他程序交互


该家族的函数的功能基本一致:与另一个程序进行交互,这个程序可以是shell程序,单纯的shell命令或者C/C++程序等等,只要系统能识别运行都算。
不过衍生这么多不同的函数,肯定也略有区别:无非就是调用的方式不一样(主进程调用还是子进程进行调用),而且填写的参数方式也略有区别。

以execl抛砖引玉

函数原型:

int execl(const char *path, const char *arg, ...);
/*path:代码可执行程序的路径,一般以绝对路径为主,如果设置设置了相应的环境变量,那么相对路径也行arg:后面这个就是比较麻烦的一点,看着简单无非就是传入简单的参数,但很坑...:代表可接受多个参数的输入最后一点,根据官方给的资料,最后一个参数必须要填NULL,代表结束
/*

与shell交互

shell命令

以常见的shell命令为例:ps aux
该命令是静态显示当前linux的所有进程信息
那么代码可以这样写:

#include <stdio.h>
#include <errno.h>
#include <unistd.h>int main()
{int ret = 0;//注意第一个参数的绝对路径,不是/bin/bash,bash只是用自己的方式去解释这些shell命令给系统ret = execl("/bin/ps","ps","a", "u", "x", NULL);if(ret < 0){printf("errno is %d\n", errno);perror("failed to execute execl!!!\n");}return 0;
}

shell脚本

并非只支持shell脚本,其他脚本也类似
现在建一个skt.sh脚本放在/home目录下

#!/bin/bash
echo "directory is:"
pwd
echo "showed"
ps aux
exit 0

C程序要这样写

#include <stdio.h>
#include <errno.h>
#include <unistd.h>int main()
{int ret = 0;//现在可以将第一个参数变为/bin/bash了ret = execl("/bin/bash","sh","/home/skt.sh", NULL);if(ret < 0){printf("errno is %d\n", errno);perror("failed to execute execl!!!\n");}return 0;
}

与其他程序交互

以C程序为例吧,其余程序也类似
现写了一个C程序名为proc,放在/home目录下

#include <stdio.h>
#include <errno.h>
#include <unistd.h>int main()
{int ret = 0;//现在可以将第一个参数变为刚才那个程序的路径//后面的参数,看情况需要还是不需要填写,我写的这个proc,就固定创建多个子进程,然后再kill掉,//不需要多余参数ret = execl("/home/proc", NULL);if(ret < 0){printf("errno is %d\n", errno);perror("failed to execute execl!!!\n");}return 0;
}

浅谈execl函数的使用相关推荐

  1. 浅谈云函数的代理IP利用面

    浅谈云函数的代理IP利用面 前言 本篇文章介绍如何通过 Serverless(云函数) 实现各种扫描器探测功能,以达到绕过态势感知.WAF等安全设备,增大蓝队研判人员溯源难度,实现封无可封,查无可查的 ...

  2. 浅谈async函数await用法

    async和await相信大家应该不陌生,让异步处理变得更友好. 其实这玩意儿就是个Generator的语法糖,想深入学习得去看看Generator,不然你可能只停留在会用的阶段. 用法很简单,看代码 ...

  3. 浅谈Python3函数命名空间与作用域

    日期:2020年1月23日 作者:Commas 注释:前一章节讲述了命名空间和作用域的知识,现在我们来谈一谈Python3函数的命名空间吧. 如果您想了解更多有关Python的知识,那么请点<我 ...

  4. 浅谈javascript函数劫持

    创建时间:2007-12-02 文章属性:原创 文章提交:hkluoluo (luoluonet_at_hotmail.com) by luoluo on 2007-11-30 luoluonet_a ...

  5. 浅谈时间函数gettimeofday的成本

    我们在程序中会频繁地取当前时间,例如处理一个http请求时,两次调用gettimeofday取差值计算出处理该请求消耗了多少秒.这样的调用无处不在,所以我们有必要详细了解下,gettimeofday这 ...

  6. 干货 | 浅谈 Softmax 函数

    点击上方"视学算法",马上关注 真爱,请设置"星标"或点个"在看" 来自 | 知乎   作者 | LinT 链接丨https://zhuan ...

  7. 浅谈JavaScript 函数作用域当中的“提升”现象

    在JavaScript当中,定义变量通过var操作符+变量名.但是不加 var 操作符,直接赋值也是可以的. 例如 : message = "hello JavaScript ! " ...

  8. 浅谈python函数签名

    函数签名对象,表示调用函数的方式,即定义了函数的输入和输出. 在Python中,可以使用标准库inspect的一些方法或类,来操作或创建函数签名. 获取函数签名及参数 使用标准库的signature方 ...

  9. softmax函数_干货 | 浅谈 Softmax 函数

    点击上方"视学算法",马上关注 来自 | 知乎 作者 | LinT链接丨https://zhuanlan.zhihu.com/p/79585726编辑 | 深度学习这件小事公众号仅 ...

最新文章

  1. Ackerman 函数的解法
  2. 【错误记录】应用运行 CPU 占用率达到 90% ( 使用 CPU Profiler 监控应用运行情况 )
  3. win7如何设置通电自动开机_电脑自动开机,教您怎么设置电脑自动开机
  4. php实现两个大整数求和,PHP计算两个特别大的整数实例代码
  5. upc 组队赛18 STRENGTH【贪心模拟】
  6. 阅读下面程序,请回答如下问题:
  7. CSS3和jQuery实现的自定义美化Checkbox和Radiobox
  8. 正则式转化nfa 代码_从0到1打造正则表达式执行引擎(二)
  9. 寻找影响免疫浸润细胞的基因(一)
  10. excel向下填充公式快捷键
  11. Python运算(四)random模块secrets模块
  12. 请简述独占设备的分配过程。
  13. 设置密保问题,问题不重复设置
  14. Perl函数及参数介绍
  15. 什么是SAP的统驭科目
  16. 调用notify方法
  17. NPN型三极管的工作原理
  18. 淋巴瘤最新研究进展(2022年4月)
  19. 南加大计算机专业本科sat要求,南加州大学本科申请条件有哪些?
  20. Java模拟鼠标键盘输入事件 --- Robot 类

热门文章

  1. Photoshop画笔工具应用—光斑与气泡效果
  2. 负载电阻的原理及应用
  3. MySQL中\G语句结束语
  4. print命令和逗号使用
  5. Android 使用新浪微博SSO授权
  6. 科学家发现“超级原子” 元素周期表要扩大(图)
  7. android手机信号强度
  8. Triplet Loss原理及实现
  9. Smokeping分享
  10. 培养用户习惯,提升应用留存 | Google Play 开发者播客节目 · 第十五期