linux中execve函数的用法
在父进程中fork一个子进程,在子进程中调用exec函数启动新的程序。exec函数一共有六个,其中execve为内核级系统调用,其他(execl,execle,execlp,execv,execvp)都是调用execve的库函数。
#include<unistd.h>
函数定义 int execve(const char *filename, char *const argv[ ], char *const envp[ ]);
返回值 函数执行成功时没有返回值,执行失败时的返回值为-1.
函数说明 execve()用来执行参数filename字符串所代表的文件路径,第二个参数是利用数组指针来传递给执行文件,并且需要以空指针(NULL)结束,最后一个参数则为传递给执行文件的新环境变量数组。
#include<unistd.h> main() { char *argv[ ]={"ls", "-al", "/etc/passwd", NULL}; char *envp[ ]={"PATH=/bin", NULL} execve("/bin/ls", argv, envp); }
运行结果为:-rw-r--r-- 1 root root 1659 Feb 27 20:13 /etc/passwd
这与在bin目录下执行 ls -al /etc/passwd 所得到的结果是一样的。
linux fork()和execve()的区别
fork是分身,execve是变身。
exec系列的系统调用是把当前程序替换成要执行的程序,而fork用来产生一个和当前进程一样的进程(虽然通常执行不同的代码流)。通常运行另一个程序,而同时保留原程序运行的方法是,fork+exec。
看看手册里面的例子就知道怎么用了。
exec系列的系统调用已经是变成别的程序了,已经和本程序无关了
linux中execve函数的用法相关推荐
- linux中stat函数的用法,os.stat()函数的用法
os.stat() 函数会给出一个文件或文件描述符(file descriptor)的各种状态信息,如权限,大小,所属用户和组,修改时间等.这个函数实际上是调用OS的系统调用stat()来实现功能,对 ...
- linux waitpid实例,Linux中waitpid()函数的用法
大家知道,当用fork启动一个新的子进程的时候,子进程就有了新的生命周期,并将在其自己的地址空间内独立运行.但有的时候,我们希望知道某一个自己创建的子进程何时结束,从而方便父进程做一些处理动作.同样的 ...
- linux中read函数的用法,Linux中read命令的简介及使用方法
Linux中read命令的简介及使用方法 发布时间:2020-08-17 16:40:04 来源:亿速云 阅读:107 作者:小新 这篇文章给大家分享的是有关Linux中read命令的简介及使用方法的 ...
- Linux中append函数的用法,linux C代码 open函数参数:O_APPEND问题求助
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 没有截图,直接上代码吧. 原代码是这样的: #include #include #include #include #include int main() ...
- linux中readline函数的用法,linux系统中readline的实现
一次笔试的时候,有一题,要求使用非脚本语言读取一个文本文件的行数,刚好这几天再看Richard Stevens的<Unix网络编程>,刚好里面有关于readline函数的实现,看代码: / ...
- 每天学一点儿shell:linux中时间函数的date的用法
文章目录 1.linux中date函数格式 2.date日期函数的具体用法 2.1.获取相应格式的日期 2.2.获取相隔时间段的日期 2.2.1.获取今天的日期 2.2.2.获取昨天的日期 2.2.3 ...
- linux内核sock_sendmsg,为什么linux中sendto函数中的msg.msg_iovlen=1;
为什么linux中sendto函数中的msg.msg_iovlen=1; | 内核中定义的sys_sendto的源码吗? 这个属于sendmsg中struct msghdr的用法问题, sys_sen ...
- Python中Print()函数的用法___实例详解(二)(全,例多)
Python中Print()函数的用法___实例详解(二)(全,例多) 目录 十一.Print()小例子 十二.Print()中文输入显示乱码问题 十三.Print()写入文件 十四.print()在 ...
- linux 内核 fget,fgets函数 linux中fgets函数怎么用
一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助. fgets函数--lin ...
最新文章
- 谷歌新模型刷新ImageNet纪录,第一作者是上海交大毕业生谢其哲
- C/C++掌握技能(三)
- 转换环境与执行环境、宿主环境与独立环境、宿主实现与独立实现
- 用户在电商网站中购买成功了,那么 TA 在微服务中经历了什么?
- 【剑指offer】面试题43:1~n整数中1出现的次数
- 开发指南专题十八:Navicat 数据库转换操作
- UVa 1586 Molar mass 分子量 题解
- 逻辑分析题汇总(一)
- 操作系统 第二部分 进程管理(二)
- 少儿编程scratch -- 基础篇
- Al-learing数学基础,平均差,方差,协方差
- windows输入法英文字体间距比平常大,按照设置里按下"shift+space“键,也依然如此
- HMS华为账号登入全部流程加详解流程机制
- IDEA+MySQL+JavaFX之通讯录系统
- 个性化MDT离线U盘
- 2018免费的隐私保护工具
- 使用 PyTorch 进行音频信号处理的数据操作和转换
- TOP Network项目周报:5月4日-5月12日
- [Python深度学习]kaggle猫狗大战
- 第17章 多媒体通信系统技术
热门文章
- MATLAB定义大气湍流模型退化函数,基于改进的Kolmogorov谱湍流模型的图像退化研究...
- 网上书店订单流程c语言源代码,网上书店的设计及实现.doc
- 迅搜 php,安装、升级 - 权威指南 - 迅搜(xunsearch) - 开源免费中文全文搜索引擎
- 【WT588F】网页上位机操作演示
- 2022年武汉东湖新技术开发区知识产权专项资助补贴38项
- 8月第2周业务风控关注 |电商平台卖家自爆家丑 一天要刷2000单
- 三星手机安装linux系统下载,ubuntu手机系统安装教程【详细步骤】
- 小苹果活动助手1.27最新版电脑版
- IVR在voip电话系统的应用与价值
- java需要记住什么英文_JAVA英语面试题(苦涩的记忆)