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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序,该子进程被新的程序替换,改变地址空间,进程映像和一些属性,但是pid号不变。$ A0 y1 _% x5 X6 E1 n: J  f1 x+ z
execve():- w# ^5 \2 w  g6 |* O/ e, S
#include8 B9 {# K4 ]  L# {3 c
int execve(const char *filename, char *const argv[], char *const envp[]);
% M! L5 t5 z' d2 |# N参数含义:8 C. L* M* B( K& e
filename:路径名,表示载入进程空间的新程序路径。) O% p8 w1 J/ Y( _) ~# h6 ]
argv[]:命令行参数,argv[0]为命令名。
1 c) S. z1 Z. g9 ]/ T& f# O: Nenvp[]:新程序的环境变量。
  C% I( b0 h7 V+ j  O返回值:成功时不会返回,使用时不用检查返回值,可通过errno检查。3 l1 o+ Q1 v  N9 C# v6 W
以下函数都是根据execve实现:# [  M8 `, V" ~4 P
int execl(const char *path, const char arg, …/ (char *) NULL */);
  A8 G- a2 G, h; o  yint execlp(const char *file, const char arg, …/ (char *) NULL */);
7 m. k; _1 ^% E6 U( Uint execle(const char *path, const char arg, …/, (char *) NULL, char * const envp[] */);* [/ \: d6 ~  c% n- H+ ?- @+ v- Z
int execv(const char *path, char *const argv[]);
  n2 m+ g  ^# D5 _; }* Tint execvp(const char *file, char *const argv[]);  W! \/ o1 M% |9 S
int execvpe(const char *file, char *const argv[],char *const envp[]);
7 d8 m+ z! q$ K6 ^' V8 Y! S5 }! z实验代码:
7 x. e4 \7 ~) J0 _; k2 }7 q; E创建子进程,子进程使用execl调用ls查看当前目录下的文件。
* m; t: N4 t# r- _5 Q& x+ pexec.c:9 M/ o: I- B; C' b4 F1 O& {" g7 R
使用execl调用shell命令查看文件信息。6 F3 t- Q7 d4 [6 b9 R6 V
# ~  u% Q$ _* }' F. l
. G, o2 J5 |3 X
执行结果:# Z* f8 s7 K  C2 F! ^- y3 V
2 |: Q. }( v7 p. T: y& a! D! ]9 \
Linux系统基于这些函数实现了“popen”,“system”等函数,这些函数能够直接调用shell等函数。
% q: u( h  Y. ^8 u6 Y+ ~' l0 q( m/ ]" w/ X
  • TA的每日心情
    奋斗
    2025-1-1 15:26
  • 签到天数: 584 天

    [LV.9]以坛为家II

    3#
    发表于 2021-3-17 09:49 | 只看该作者
    谢谢,努力学习中
  • TA的每日心情

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

    [LV.1]初来乍到

    2#
    发表于 2021-3-15 17:10 | 只看该作者
    exec函数族
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-24 14:29 , Processed in 0.171875 second(s), 24 queries , Gzip On.

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

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

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