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[]);
环境linuxunix
表头文件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");
}

execl execv的更多相关文章

  1. Usual tiny skills & solutions

    Ubuntu and Win10 - double OS 2016-02-21 Yesterday I helped my friend install Ubuntu (14.04 LTS) on h ...

  2. 本文帮你在 Unix 下玩转 C 语言

    shell是一种特殊的应用程序(命令行解释器),他为运行其他应用程序提供了一个接口. posix规范了操作系统是什么样 每个进程都有一个工作目录(又叫当前目录),相对路径都是从工作目录开始解释. Ct ...

  3. linux系统编程之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用

    本节目标: exec替换进程映像 exec关联函数组(execl.execlp.execle.execv.execvp) 一,exec替换进程映像 在进程的创建上Unix采用了一个独特的方法,它将进程 ...

  4. exec系列函数(execl,execlp,execle,execv,execvp)使用

    本节目标: exec替换进程映像 exec关联函数组(execl.execlp.execle.execv.execvp) 一,exec替换进程映像 在进程的创建上Unix采用了一个独特的方法,它将进程 ...

  5. 在进程中执行新代码 execl、execle、execlp、execv、execve和execvp函数

    摘要:本文主要讲述怎样在进程中执行新代码,以及exec系列函数的基本用法. 在进程中执行新代码 用函数fork创建子进程后,假设希望在当前子进程中运行新的程序,能够调用exec函数运行还有一个程序.当 ...

  6. execl, execlp, execle, execv, execvp - 执行某个文件

    总览 (SYNOPSIS) #include <unistd.h> extern char **environ; int execl( const char *path, const ch ...

  7. exec 家族库函数以及系统调用(execl,execle,execlp and execv,execvp,execve)

    (1)exec函数说明 fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法.它可以根据指定的 ...

  8. 区分execl与system——应用程序中执行命令

    execl:相关函数:fork, execle, execlp, execv, execve, execvp表头文件:#include <unistd.h>函数定义:int execl(c ...

  9. 轻松理解execl系列函数

    execl函数功能如下:启动一个可执行文件,并且对他进行传送参数.一些原型如下 #include <unistd.h> extern char **environ; int execl(c ...

随机推荐

  1. WPF的System.Windows.Threading.DispatcherTimer的使用(每隔一定的时间重复做某事)

    这里使用了一个进度条来展示, 前段代码: <Window x:Class="TimerTest.MainWindow" xmlns="http://schemas. ...

  2. 深入理解java集合框架之---------Arraylist集合 -----构造函数

    ArrayList有三个构造方法 ArrayList有三个常量 1.private transient Object[] elementData (数组); 2.private int size (元 ...

  3. 《Think Python》第7章学习笔记

    目录 7.1 重新赋值(Reassignment) 7.2 更新变量(Updating variables) 7.3 while 语句(The while statement) 7.4 break 语 ...

  4. 关于ActiveX在WebBrowser不加载问题

    最近在做电子面单打印,需要在CS端集成web,这里我使用了WebBrowser,下文简称“wb”. wb可以简单的理解为IE的阉割版,它是支持ActiveX的,首先要确保ActiveX在IE中正常安装 ...

  5. [学习线路] 零基础学习hadoop到上手工作线路指导(初级篇)

    about云课程最新课程Cloudera课程   零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了. ...

  6. java实现邮箱验证的功能

    在日常生活中,我们在一个网站中注册一个账户时,往往在提交个人信息后,网站还要我们通过手机或邮件来验证,邮件的话大概会是下面这个样子的: 用户通过点击链接从而完成注册,然后才能登录. 也许你会想,为什么 ...

  7. 撩课-Java每天5道面试题第20天

    131.Spring是什么? 他解决的是业务逻辑层和其他各层的松耦合问题, 因此它将面向接口的编程思想 贯穿整个系统应用. Spring是一个轻量级的IoC和AOP容器框架. 目的是解决企业应用开发的 ...

  8. OutOfMemoryError(内存溢出)解决办法

    第一种OutOfMemoryError: PermGen space 发生这种问题的原意是程序中使用了大量的jar或class,使java虚拟机装载类的空间不够,与Permanent Generati ...

  9. mysql随机查询符合条件的几条记录

    随机查询,方法可以有很多种.比如,查询出所有记录,然后随机从列表中取n条记录.使用程序便可实现.可是程序实现必须查询出所有符合条件的记录(至少是所有符合条件的记录id),然后再随机取出n个id,查询数 ...

  10. 解决:IDEA 中 new Java Class 怎么没了?

    前言:写代码时遇到的问题,所以记录下来.我的包名为“interface”,只有这个包及包下的文件不能建java文件. 问题 解决方式(对于普通包名) 点击应用,ok就可以了. 解决方式(对于包名为“i ...