首页 > 其他分享 >系统函数

系统函数

时间:2024-03-05 20:35:17浏览次数:20  
标签:函数 exec 系统 system char ls NULL 环境变量

系统编程-系统函数

//能调用文件外的命令/程序的函数,称之为系统函数
//主要是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族运行后,会结束后边的代码(相当于退出)

标签:函数,exec,系统,system,char,ls,NULL,环境变量
From: https://www.cnblogs.com/night000day/p/18053156

相关文章

  • P5655 基础数论函数练习题 题解
    分析考虑莫队。令$S=\operatorname{lcm}(a_l,a_{l+1},a_{l+2},\dots,a_{r-1})$。则对于新加进来的$a_r$,有:$$\operatorname{lcm}(a_l,a_{l+1},a_{l+2},\dots,a_{r-1},a_r)\=\operatorname{lcm}(S,a_r)\=\frac{S\timesa_r}{\gcd(S,a_r)}$$很容易发现,$S$在不取模的情况下会......
  • Python zip函数及用法
    zip()函数是Python内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串以及range()区间构成的列表)“压缩”成一个zip对象。所谓“压缩”,其实就是将这些序列中对应位置的元素重新组合,生成一个个新的元组。importnumpyasnpmy_list=[11,12,13]my_tuple=(21......
  • C++ 职工信息管理系统项目的二次开发 2252423 ywx
    来源:同学大二下的期末大作业:网上购书系统项目。运行环境:VisualStudio2022①项目结构:②运行结果截图:主菜单界面:功能选择界面:工资总额输出界面:平均工资输出界面:显示输出界面:增加正式员工界面:增加临时员工界面:修改数据界面:③主要问题:查询功能未完善,有时会出现......
  • JAVA私有构造函数---java笔记
    在Java中,构造函数是一种特殊的方法,它用于初始化新创建的对象。当我们创建一个类的实例时,构造函数会自动被调用。构造函数可以有不同的访问修饰符,如public、protected、default(即包级私有)和private。其中,private构造函数是Java中一种特殊的构造函数。私有构造函数(PrivateConstru......
  • 基于c/c++的公司职工管理系统软件的二次开发
    引言:经过在网络上的广泛搜索和比较,我了解了一款基于C/C++的公司职工管理系统软件,这款软件在基本功能方面表现相当完善,能够满足日常的使用需求。然而,在实际使用过程中,我也发现它存在一些问题和不足,所以我决定对该软件进行二次开发。原始代码:点击查看代码**main.cpp**#include......
  • numpy其他函数
    numpy其他函数importnumpyasnp#数组拼接t1=np.arange(12).reshape((2,6))t2=np.arange(12,24).reshape((2,6))print(t1)print(t2)print("*"*50)print(np.vstack((t1,t2)))print("*"*50)print(np.hstack((t1,t2)))[[012345......
  • 在Windows操作系统上进行端口映射通常需要使用网络地址转换(NAT)规则或端口转发来实现。
    端口映射通常与目的网络地址转换(DNAT)概念相关联。在网络中,DNAT是一种技术,用于将传入的数据包的目的IP地址和/或端口号修改为内部网络中另一台计算机的IP地址和端口号。这样可以实现将外部流量导向内部特定计算机或服务的功能。因此,端口映射通常涉及DNAT技术,用于在网络中重......
  • 某资产管理系统打点过程中的免杀经历
    上周初,被扔过来单位内部的一个链接,让渗透一下,本以为三下五除二很快就能测完,没想到在对抗杀软时费了一番功夫,再加上杂七杂八的事儿,经过了一个星期才测完(# ̄~ ̄#)。打开链接,见到一个熟悉的登录框,是一个资产管理系统。在进行了一番端口目录、认证机制、会话管理、授权访问等方面的检查后......
  • 3562-Linux系统使用手册
      ......
  • EQS(环境查询系统)
    简介EQS是一种进阶的AI系统,可以看成是行为树Task的进阶版本EQS的基础三部分生成器generate测试test情景context生成器generate根据一定规则生成点或者查找场景中的对象。UE提供9种EQS,包括圆形、扇形、方形、类查找方式测试test根据指定的规则,对点、对象进行......