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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序,该子进程被新的程序替换,改变地址空间,进程映像和一些属性,但是pid号不变。
8 p, l4 A- O+ Xexecve():  m- a! g" ?" f  R0 E" m' {" Q0 F
#include
" c# p/ @4 c' x; E7 fint execve(const char *filename, char *const argv[], char *const envp[]);: I! i8 `8 Y: M" D
参数含义:+ u  `4 c0 `0 k* O! b8 S$ e
filename:路径名,表示载入进程空间的新程序路径。+ C# F4 h# c1 k6 Y( w* Z/ i
argv[]:命令行参数,argv[0]为命令名。
7 g! i) j. T! k  Z+ I& zenvp[]:新程序的环境变量。) e1 a( d0 j; k/ V# U- X; |, C6 J
返回值:成功时不会返回,使用时不用检查返回值,可通过errno检查。
1 ^0 l+ i' Q" {2 P6 ^$ j以下函数都是根据execve实现:
! C; ]6 z% f/ V1 @int execl(const char *path, const char arg, …/ (char *) NULL */);& t( s5 ?8 t; O2 x, P2 B
int execlp(const char *file, const char arg, …/ (char *) NULL */);
+ [3 X* m6 Y$ G5 kint execle(const char *path, const char arg, …/, (char *) NULL, char * const envp[] */);; O* J& c% d/ d
int execv(const char *path, char *const argv[]);
4 P% p1 m# b& U7 e9 eint execvp(const char *file, char *const argv[]);; P) X" U- L+ @3 P# O% j
int execvpe(const char *file, char *const argv[],char *const envp[]);
, \! A! w  P  Z. `实验代码:
# x0 z' }% m+ }  x" \  t. ?$ K创建子进程,子进程使用execl调用ls查看当前目录下的文件。. A1 }7 Z4 N! z9 u; ]
exec.c:3 Y4 s/ T9 d) E0 q0 N* m
使用execl调用shell命令查看文件信息。
5 n( N& b1 u* R! ^- P* B: G3 a1 j# Q
+ f( B0 ?) z2 B; p/ A: o/ F: P
! B6 r# l7 v0 S, k3 Q执行结果:- w9 a$ \: ?, D

/ K$ a3 Q  x- ^' x) g* v# CLinux系统基于这些函数实现了“popen”,“system”等函数,这些函数能够直接调用shell等函数。% L/ W, U" k2 V: O& P4 d. _6 T

- a/ y4 {' b; ?; @0 ?
  • 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 17:38 , Processed in 0.187500 second(s), 23 queries , Gzip On.

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

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

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