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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序,该子进程被新的程序替换,改变地址空间,进程映像和一些属性,但是pid号不变。& _* l: w1 H! G+ c: x  s
execve():
4 {% w5 G+ }' y" c9 [' N#include. C. A9 Y9 E! F. t7 L/ B0 k
int execve(const char *filename, char *const argv[], char *const envp[]);2 c( ?" D/ H; e
参数含义:& L3 w7 y0 J1 E/ T
filename:路径名,表示载入进程空间的新程序路径。6 H9 ~6 ^! d, X- f. Z
argv[]:命令行参数,argv[0]为命令名。
  L& B0 u- w: b8 L/ ienvp[]:新程序的环境变量。
0 f! B4 J- d8 |& c0 `返回值:成功时不会返回,使用时不用检查返回值,可通过errno检查。
9 H6 w- Z! G. a/ C# S* y以下函数都是根据execve实现:
* K; }7 D: f: K+ Q" a" g% mint execl(const char *path, const char arg, …/ (char *) NULL */);4 d+ A0 `% c4 R# Y
int execlp(const char *file, const char arg, …/ (char *) NULL */);7 ^+ ]. I! b( r
int execle(const char *path, const char arg, …/, (char *) NULL, char * const envp[] */);8 `: j/ p7 R! C4 J( N/ H
int execv(const char *path, char *const argv[]);
- g0 z* W) b# v% Z: lint execvp(const char *file, char *const argv[]);
+ ?2 E6 K5 X& M! R- A# Oint execvpe(const char *file, char *const argv[],char *const envp[]);% ]0 F' H" y" ^) w2 {: ]+ ~' v6 U
实验代码:
% h5 e, j* L* k; w3 R% H创建子进程,子进程使用execl调用ls查看当前目录下的文件。; q) @, t1 e+ H1 [$ g
exec.c:) a8 r+ y, E5 r3 O
使用execl调用shell命令查看文件信息。
: d! A$ H- Z1 `
3 ]1 W1 h5 ~' X5 e/ u# z
8 W$ @$ V( J1 j0 W2 z" t# X. h: h! W执行结果:, ]: N* a' j5 ]* }6 e
6 J) S. ?3 z4 i/ @8 L
Linux系统基于这些函数实现了“popen”,“system”等函数,这些函数能够直接调用shell等函数。) u2 m8 v$ V# L
8 B9 b; [) r- ]% A! i
  • 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 14:11 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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