找回密码
 注册
关于网站域名变更的通知
查看: 276|回复: 2
打印 上一主题 下一主题

迅为i.MX6ULL终结者进程基础 exec函数族

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-3-12 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序,该子进程被新的程序替换,改变地址空间,进程映像和一些属性,但是pid号不变。, d) t0 z. w/ g' t
execve():* @3 `8 L0 h# N
#include
4 N. N1 l9 M/ H( c' s  X( F# Cint execve(const char *filename, char *const argv[], char *const envp[]);
2 k$ g! {4 u% X) b) H参数含义:
: u& a7 N# `- Dfilename:路径名,表示载入进程空间的新程序路径。1 e& @7 e0 h6 f6 P4 B
argv[]:命令行参数,argv[0]为命令名。
+ B. ]$ O7 P7 F' a7 e/ k6 Yenvp[]:新程序的环境变量。, O" d: R3 i' d8 G: p
返回值:成功时不会返回,使用时不用检查返回值,可通过errno检查。
% }% Q/ n3 Z, u1 X* X以下函数都是根据execve实现:
7 b! x) n3 g* Y. V$ s4 c" p# d4 u7 aint execl(const char *path, const char arg, …/ (char *) NULL */);
7 t/ Z4 S* \( t8 @; U  G; O# j! V0 Bint execlp(const char *file, const char arg, …/ (char *) NULL */);8 I6 _- O. }6 D) {1 c( k! n6 v5 d
int execle(const char *path, const char arg, …/, (char *) NULL, char * const envp[] */);2 m1 v# D! |$ M2 C
int execv(const char *path, char *const argv[]);
1 q3 g5 I: z6 o: P5 h4 E! T, `9 X0 @int execvp(const char *file, char *const argv[]);
- n9 p% V: ~" P0 H% h$ Tint execvpe(const char *file, char *const argv[],char *const envp[]);
1 w. I; \- D  A4 U) }& [; r实验代码:/ i( a8 g4 D) l5 L# q
创建子进程,子进程使用execl调用ls查看当前目录下的文件。
+ c' b1 r+ h) oexec.c:6 D5 B. e  }( C) U' K
使用execl调用shell命令查看文件信息。
9 _7 V" _. Y' h# E1 f4 L% ~! |( |7 L* k, J5 r
  Q/ E2 }+ ^& M) h' e( y
执行结果:$ x- n. |2 u, c+ R8 o% q

$ ~+ ?. W1 |6 C% e  L7 _Linux系统基于这些函数实现了“popen”,“system”等函数,这些函数能够直接调用shell等函数。
! k5 w! l$ ^- ?- [5 x( {* r0 t+ [% i: g& ~5 e' R
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-3-15 17:10 | 只看该作者
    exec函数族
  • TA的每日心情
    奋斗
    2025-1-1 15:26
  • 签到天数: 584 天

    [LV.9]以坛为家II

    3#
    发表于 2021-3-17 09:49 | 只看该作者
    谢谢,努力学习中
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 12:24 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表