系统函数

系统编程-系统函数

//能调用文件外的命令/程序的函数,称之为系统函数
//主要是system()和exec函数族

system()

//<stdlib.h>
*int system(const char command)
//例:前台执行:system("./a.out")
//例:后台执行:system("./a.out &")

特点:
执行不影响后续代码运行

用途:

  1. 执行shell命令//linux给我们的可执行程序
  2. 执行我们的程序//注意影响

exec函数族

//能使用其一并理解,即可
execl(char *path,char *arg, ...)

//exec//l->列表形式列举
//path:执行文件路径//arg:命令列表
system("ls -l");//可以连写
execl("/bin/ls","ls","-l",NULL(结束标记));//以列表形式列举
execl("/bin/ls","ls -l"(错误),NULL);//不能连写

execlp(char *file,char *arg, ...)

//p->环境变量自动填充
//file:执行文件名
execlp("ls","ls","-l",NULL);

execle(char *path,char *arg, ...,char *envp[])

//e->给目标文件设定指定环境变量
//char *envp[]//环境变量指针数组
char *evp[]={"PATH=/home/gec","PATH=/etc/profile",NULL(也要写NULL)};
execl("/bin/ls","ls","-l",NULL,evp);

execv(char *path,char *const argv[])

//v->命令使用指针数组存放
char *arg[]={"ls","-l",NULL(注意)};
execv("/bin/ls",arg);

execvp(char *file,char *const argv[])
execvpe(char *file,char *const argv[],char *const envp[])

exec + l p e v
exec -> 同函数族
l -> 列表形式逐一列举(列举写入)
p -> 从系统环境变量中查找,要执行的shell命令或程序(提前给了环境变量的路径)
e -> 执行时,自动设置环境变量(调用执行进程的环境变量)
v -> 参数使用指针数组存放

相同与区别/注意事项

两者相同:都是帮助调用命令,调用程序
两者区别:system后面继续运行,exec后面不运行

注意事项:

  1. exec族使用了...,用NULL作为结束标志(注意在命令末尾加上NULL)
  2. exec族运行后,会结束后边的代码(相当于退出)
posted @   night000day  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示