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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序,该子进程被新的程序替换,改变地址空间,进程映像和一些属性,但是pid号不变。
- E& v! P6 ]2 x4 ?& Q7 Mexecve():+ {% l& y; M4 [+ j2 }
#include
" o5 R7 B& C3 P! w! {& C# [int execve(const char *filename, char *const argv[], char *const envp[]);' [9 A3 i6 N) F4 Y1 G, H
参数含义:! l+ W+ o( \1 T( @% r5 _
filename:路径名,表示载入进程空间的新程序路径。: ~8 h7 |' W) W: i1 j5 u' R. A; Q
argv[]:命令行参数,argv[0]为命令名。
' T9 V5 ^! N0 ]" Y) zenvp[]:新程序的环境变量。) h: E% w" s& {! N/ W
返回值:成功时不会返回,使用时不用检查返回值,可通过errno检查。
6 U0 @+ K7 i- F% H& G  l' D以下函数都是根据execve实现:5 `) j7 w$ ~! w& o
int execl(const char *path, const char arg, …/ (char *) NULL */);+ K( J" m5 L# E. p9 b1 z# e6 `
int execlp(const char *file, const char arg, …/ (char *) NULL */);1 N, Y% B3 s- H" d6 i0 N, s
int execle(const char *path, const char arg, …/, (char *) NULL, char * const envp[] */);
1 D, ?6 x* g5 O  h/ Kint execv(const char *path, char *const argv[]);
4 K9 D; Z* ]  |& [( W5 E8 d* Dint execvp(const char *file, char *const argv[]);
7 S( C* n$ X  \% `7 aint execvpe(const char *file, char *const argv[],char *const envp[]);1 G7 O4 d6 y. h7 ~7 k& N: i# @
实验代码:* U5 F8 r& ~; B- j3 ]
创建子进程,子进程使用execl调用ls查看当前目录下的文件。$ t: M' f: m+ x
exec.c:
8 {5 n2 U6 Y! `. B* G8 L使用execl调用shell命令查看文件信息。: A- z( O  M( E% p. h, W& y' J
; x. M3 H3 E- i6 d
8 A: P7 b4 }" x7 ]' g
执行结果:
  p/ o2 ^* R. L0 `$ _
( c4 W( \  m7 c) j! E3 `( ^Linux系统基于这些函数实现了“popen”,“system”等函数,这些函数能够直接调用shell等函数。+ E4 c/ C8 s7 M: S* L' H

" U2 p- _% @$ |: X1 C5 L4 t; [+ }
  • 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-6-24 20:31 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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