博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
execl execv
阅读量:5118 次
发布时间:2019-06-13

本文共 1311 字,大约阅读时间需要 4 分钟。

int execl(const char *path, const char *arg, ...);

函数说明

execl()其中后缀"l"代表list也就是参数列表的意思
第一参数path字符指针所指向要执行的文件路径
接下来的参数代表执行该文件时传递的参数列表
argv[0],argv[1]... 最后一个参数须用空指针NULL作结束

2函数用法

函数返回值

成功则不返回值
失败返回-1
失败原因存于errno中
可通过perror()打印
Windows下示例(vs编译)
#include <stdio.h>
#include <process.h>
int main()
{
printf("调用D盘Test目录下的hello.exe, 第一个参数为改应用程序的名称\n");
execl("D:\\Test\\hello.exe","hello");
printf("进程已经被递交给了hello.exe
这里不会再执行");
}
Linux下示例

示例1

/* 执行 /bin/ls -al /ect/passwd */
#include <unistd.h>/*** File: execl.c**/
main()
{
// 执行/bin目录下的ls, 第一参数为程序名ls, 第二个参数为"-al", 第三个参数为"/etc/passwd"
execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *) 0);
}

示例2

#include <unistd.h>/*** File: execl.c**/
int main()
{
char args[]=" -l";
// 执行/bin目录下的ls, 第一参数为程序名ls, 第二个参数为"-al", 第三个参数为"/etc/"
execl("/bin/ls","ls","-al","/etc/",NULL);
return 0;
}

编译并运行

[cnscn@test c]$ gcc execl.c -o execl
[cnscn@test c]$ ./execl
-rw-r--r-- 1 root root 2218 Jan 13 11:36 /etc/passwd
 
 
 
函数名: execv
功 能: 装入并运行其它程序的
用 法: int execv(const char *pathname, char * const argv[]);
环境
linux
unix
表头文件
unistd.h
举例
char *exec_argv[4];
exec_argv[0] = ip;
exec_argv[1] = port;
exec_argv[2] = NULL;
if (execv("/bin/telnet", exec_argv) == -1)
{
DoDisconnect();
CheckError(nResult, etTelnetConnect, "Connect");
}

转载于:https://www.cnblogs.com/jeanschen/p/3512609.html

你可能感兴趣的文章
骑士共存问题
查看>>
对于没有复现onWindowFocusChange方法的Activity子类,插入一个onWindowFocusChange方法
查看>>
ITIL(IT Infrastructure Library)介绍系列1(IT服务管理实践综述):
查看>>
【HLSDK系列】HL引擎入门篇
查看>>
计算机基础初识
查看>>
一个请求过程用同一个数据库连接对象在多线程下的问题
查看>>
mysql配置主从复制和常见问题
查看>>
Flex 弹性布局
查看>>
[笔记]何为Linux及其文件系统(五)
查看>>
C# MD5 加密
查看>>
Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
查看>>
spring mvc 异常统一处理
查看>>
230. Kth Smallest Element in a BST
查看>>
154. Find Minimum in Rotated Sorted Array II
查看>>
POJ 1928 The Peanuts
查看>>
Instant Radiosity实现
查看>>
(转)C# Aop简单扫盲及ORM实体类属性拦截示例
查看>>
C#基础之字符串Stirng特性详解
查看>>
[网络流24题] 餐巾
查看>>
ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
查看>>