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纯净版
相关文章
- 微软放缓新版 Outlook 企业强制迁移,延后至 2027 年 3 月
- NVIDIA 发布 595.71 显卡驱动!附下载地址
- 英特尔发布 32.0.101.8531 显卡驱动!更新内容一览
- 微软推送 Win11 26H1 预览版!版本号升至 28000.1643
- 微软官宣:Copilot 成 Win10/Win11 内置最佳生产力应用
- 无需第三方软件!手把手教你禁用 Win11 系统 13 项 AI 功能
- Epic 喜加二:《波坦尼庄园》《Pixel Gun 3D》免费领取
- 微软 Win11 26300.7733/26220.7752 预览版发布
- Win11 26H1 Canary 28020.1495(KB5074168)发布
- Win11 Dev 26300.7674 发布!正式开启 26300 篇章
系统下载排行榜71011xp
番茄花园 Win7 64位 快速稳定版
2【纯净之家】Windows7 32位 全新纯净版
3【纯净之家】Win7 64位 Office2007 办公旗舰版
4【雨林木风】Windows7 64位 装机旗舰版
5JUJUMAO Win7 64位旗舰纯净版
6【电脑公司】Windows7 64位 免费旗舰版
7【纯净之家】Windows7 SP1 32位 全补丁旗舰版
8【深度技术】Windows7 64位 官方旗舰版
9【游戏专用】Windows7 64位 装机旗舰版
10【番茄花园】Windows7 64位 旗舰装机版
【纯净之家】Windows10 22H2 64位 企业版
2JUJUMAO Win10 X64 极速精简版
3【深度技术】 Win10 64位国庆特别版
4【雨林木风】Windows10 64位 专业精简版
5【深度技术】Windows10 64位 专业精简版
6【纯净之家】Windows10 32位 官方正式版
7【雨林木风】Windows10 64位稳定版系统
8【番茄花园】Windows10 64位 专业版镜像
9【雨林木风】Windows10 64位 官方专业版
10【技术员】Windows10 64位 系统纯净版
【纯净之家】Windows11 23H2 64位 游戏优化版
2【纯净之家】Windows11 23H2 64位 纯净专业版
3【纯净之家】Windows11 23H2 64位 企业版
4【纯净之家】Windows11 23H2 64位 中文家庭版
5风林火山Windows11下载中文版(24H2)
6【纯净之家】Windows11 23H2 64位专业精简版
7JUJUMAO Win11 24H2 64位 专业版镜像
8JUJUMAO Win11 24H2 64位 精简版镜像
9【纯净之家】Windows11 23H2 64位 纯净家庭版
10雨林木风 Win11 25H2 超级纯净版系统
深度技术 GHOST XP SP3 电脑专用版 V2017.03
2深度技术 GGHOST XP SP3 电脑专用版 V2017.02
3萝卜家园 GHOST XP SP3 万能装机版 V2017.03
4番茄花园 GHOST XP SP3 极速体验版 V2017.03
5Win7系统下载 PCOS技术Ghost WinXP SP3 2017 夏季装机版
6雨林木风 GHOST XP SP3 官方旗舰版 V2017.03
7萝卜家园 GHOST XP SP3 完美装机版 V2016.10
8电脑公司 GHOST XP SP3 经典旗舰版 V2017.03
9雨林木风GHOST XP SP3完美纯净版【V201710】已激活
10雨林木风 GHOST XP SP3 精英装机版 V2017.04
热门教程
装机必备 更多+
重装工具