发布时间:2014-09-05 17:45:03作者:知识屋
root@wl-MS-7673:/home/wl/桌面/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/wl/桌面/c++# g++ execl.cpp -o execlroot@wl-MS-7673:/home/wl/桌面/c++# ./execl -rw-r--r-- 1 root root 1801 11月 28 09:46 /etc/passwdroot@wl-MS-7673:/home/wl/桌面/c++#大家可以清楚的看到, 执行/bin目录下的ls, 第一参数为程序名ls, 第二个参数为"-al", 第三个参数为"/etc/passwd",但是没有输出success!!
root@wl-MS-7673:/home/wl/桌面/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!/n"); 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/wl/桌面/c++# cat -n file_creat.cpp 1 #include <stdio.h> 2 3 #include <stdlib.h> 4 5 #include <sys/types.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!/n",filename); 13 exit(EXIT_FAILURE); 14 } 15 else 16 { 17 printf("create file %s success!/n",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!/n"); 26 exit(EXIT_FAILURE); 27 } 28 create_file(argv[1]); 29 exit(EXIT_SUCCESS); 30 } 31 32 root@wl-MS-7673:/home/wl/桌面/c++# g++ execl_test.cpp -o execl_testroot@wl-MS-7673:/home/wl/桌面/c++# g++ file_cfile_copy file_copy.cpp file_creat.cpp root@wl-MS-7673:/home/wl/桌面/c++# g++ file_creat.cpp -o file_creatroot@wl-MS-7673:/home/wl/桌面/c++# ./execl_test you haven,t input the filename,please try again!: Successroot@wl-MS-7673:/home/wl/桌面/c++# ./execl_test filecreate file file success!root@wl-MS-7673:/home/wl/桌面/c++#
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能