Linux下execl学习
系统大全为您提供
Linux下头文件
#include <unistd.h>
函数定义
int execl(const char *path, const char *arg, ...);
函数说明
execl()其中后缀"l"代表list也就是参数列表的意思,第一参数path字符指针所指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... 最后一个参数须用空指针NULL作结束。
函数返回值
成功则不返回值, 失败返回-1, 失败原因存于errno中,可通过perror()打印
实例1:
root@wl-MS-7673:/home/桌面/c++# cat -n execl.cpp
1 /* 执行 /bin/ls -al /ect/passwd */
2 #include <unistd.h>/*** File: execl.c**/
3 #include <iostream>
4 using namespace std;
5 int main()
6 {
7 // 执行/bin目录下的ls, 第一参数为程序名ls, 第二个参数为"-al", 第三个参数为"/etc/passwd"
8
9 if(execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *) 0) < 0)
10
11 {
12 cout<<"execl error"<<endl;
13 }
14 else
15 {
16 cout<<"success"<<endl;
17 }
18 return 0;
19 }
root@wl-MS-7673:/home/桌面/c++# g++ execl.cpp -o execl
root@wl-MS-7673:/home/桌面/c++# ./execl
-rw-r--r-- 1 root root 1801 11月 28 09:46 /etc/passwd
root@wl-MS-7673:/home/桌面/c++#
大家可以清楚的看到, 执行/bin目录下的ls, 第一参数为程序名ls, 第二个参数为"-al", 第三个参数为"/etc/passwd",但是没有输出success!!
这是为什么呢?
execl函数特点:
当进程调用一种exec函数时,该进程完全由新程序代换,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。
用另一个新程序替换了当前进程的正文、数据、堆和栈段。
当前进程的正文都被替换了,那么execl后的语句,即便execl退出了,都不会被执行。
再看一段代码:
root@wl-MS-7673:/home/桌面/c++# cat -n execl_test.cpp
1 #include <unistd.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 int main(int argc,char *argv[])
6 {
7 if(argc<2)
8 {
9 perror("you haven,t input the filename,please try again! ");
10 exit(EXIT_FAILURE);
11
12 }
13 if(execl("./file_creat","file_creat",argv[1],NULL)<0)
14 perror("execl error!");
15 return 0;
16 }
17
root@wl-MS-7673:/home/桌面/c++# cat -n file_creat.cpp
1 #include <stdio.h>
2
3 #include <stdlib.h>
4
5 #include <syspes.h>
6 #include <sys/stat.h>
7 #include <fcntl.h>
8 void create_file(char *filename)
9 {
10 if(creat(filename,0666)<0)
11 {
12 printf("create file %s failure! ",filename);
13 exit(EXIT_FAILURE);
14 }
15 else
16 {
17 printf("create file %s success! ",filename);
18 }
19 }
20
21 int main(int argc,char *argv[])
22 {
23 if(argc<2)
24 {
25 printf("you haven't input the filename,please try again! ");
26 exit(EXIT_FAILURE);
27 }
28 create_file(argv[1]);
29 exit(EXIT_SUCCESS);
30 }
31
32
root@wl-MS-7673:/home/桌面/c++# g++ execl_test.cpp -o execl_test
root@wl-MS-7673:/home/桌面/c++# g++ file_c
file_copy file_copy.cpp file_creat.cpp
root@wl-MS-7673:/home/桌面/c++# g++ file_creat.cpp -o file_creat
root@wl-MS-7673:/home/桌面/c++# ./execl_test
you haven,t input the filename,please try again!
: Success
root@wl-MS-7673:/home/桌面/c++# ./execl_test file
create file file success!
以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。
本文来自系统大全http://www.win7cn.com/如需转载请注明!推荐:win7纯净版
相关文章
- 微软为 Win10 推送 2026 年首个扩展安全更新 KB5073724
- Win11 26H1 Canary 28020.1371(KB5073097)发布
- 六代 Windows 系统对比测试,Win11 在老旧硬件上表现垫底
- 哪里有真正纯净的系统?这 2 个纯净系统下载网站值得收藏!
- 英伟达发布 591.67 热更新驱动,三项核心问题一次性修复
- NVIDIA 发布 591.59 显卡驱动!附下载地址
- 微软安卓端 Link to Windows 更新:安卓手机可远程锁 Win11
- 微软新专利获批:Win11 剪贴板集成 Copilot AI,复制粘贴变智能处理
- Win11 26H1 Canary 28000.1340(KB5072032)发布
- 微软为 Win10 推送扩展安全更新 KB5071546
系统下载排行榜71011xp
【纯净之家】Windows7 64位 全新纯净版
2番茄花园 Win7 64位 快速稳定版
3【纯净之家】Windows7 32位 全新纯净版
4【纯净之家】Win7 64位 Office2007 办公旗舰版
5【雨林木风】Windows7 64位 装机旗舰版
6【纯净之家】Windows7 SP1 32位 全补丁旗舰版
7【电脑公司】Windows7 64位 免费旗舰版
8JUJUMAO Win7 64位旗舰纯净版
9【深度技术】Windows7 64位 官方旗舰版
10【游戏专用】Windows7 64位 装机旗舰版
【纯净之家】Windows10 22H2 64位 游戏优化版
2【纯净之家】Windows10 22H2 64位 专业工作站版
3【纯净之家】Windows10 企业版 LTSC 2021
4【纯净之家】Windows10企业版LTSC 2021 纯净版
5【深度技术】Windows10 64位 专业精简版
6【纯净之家】Windows10 22H2 64位 企业版
7【雨林木风】Windows10 64位 专业精简版
8JUJUMAO Win10 X64 极速精简版
9【深度技术】 Win10 64位国庆特别版
10【纯净之家】Windows10 32位 官方正式版
【纯净之家】Windows11 23H2 64位 游戏优化版
2【纯净之家】Windows11 23H2 64位 专业工作站版
3【纯净之家】Windows11 23H2 64位 纯净专业版
4风林火山Windows11下载中文版(24H2)
5【纯净之家】Windows11 23H2 64位 企业版
6【纯净之家】Windows11 23H2 64位 中文家庭版
7JUJUMAO Win11 24H2 64位 专业版镜像
8【纯净之家】Windows11 23H2 64位专业精简版
9【纯净之家】Windows11 23H2 64位 纯净家庭版
10JUJUMAO Win11 24H2 64位 精简版镜像
深度技术 GHOST XP SP3 电脑专用版 V2017.03
2深度技术 GGHOST XP SP3 电脑专用版 V2017.02
3萝卜家园 GHOST XP SP3 万能装机版 V2017.03
4Win7系统下载 PCOS技术Ghost WinXP SP3 2017 夏季装机版
5番茄花园 GHOST XP SP3 极速体验版 V2017.03
6雨林木风 GHOST XP SP3 官方旗舰版 V2017.03
7电脑公司 GHOST XP SP3 经典旗舰版 V2017.03
8雨林木风GHOST XP SP3完美纯净版【V201710】已激活
9萝卜家园 GHOST XP SP3 完美装机版 V2016.10
10雨林木风 GHOST XP SP3 精英装机版 V2017.04
热门教程
装机必备 更多+
重装工具