linux下exec用法,linux下exec系列(一)
fork()是用于建立进程的手段之一,但是fork()只能建立相同程序的副本。幸运的是,Linux系统还提供了系统调用exec系列。它可用于新程序的运行。
如果exec调用成功,调用进程将被覆盖,然后从新程序的入口开始执行。这样就产生了一个新的进程,但是它的进程标识符与调用进程相同。这就是说,exec没有建立一个与调用进程并发的新进程,而是用新进程取代了原来的进程。所以,对exec调用成功后,没有任何数据返回,这与fork()不同。
下面给出了exec系列调用在Linux系统中unistd.h中的函数声明:
int execl(const char *path, const *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg, ..., char* const envp[]);
int execv(const char *path, char* const argv[]);
int execvp(const char *file, char* const argv[]);
下面来看一个exec函数的示例:
#include
#include
int main()
{
printf("Executing ls\n");
execl("/bin/ls", "ls", "-la", NULL);
printf("------End of execl()\n");
// 输出了下面的语句就表明execl调用失败了
perror("execl failed to run ls");
return 0;
}
运行结果:
Executing ls
总用量 56
drwxrwxr-x 2 zcm zcm 4096 11月 2 16:26 .
drwxr-xr-x 11 zcm zcm 4096 10月 17 11:26 ..
-rwxrwxr-x 1 zcm zcm 5396 9月 21 11:17 p0
-rw-r--r-- 1 zcm zcm 455 9月 21 11:16 p0.c
-rwxrwxr-x 1 zcm zcm 5195 11月 2 16:26 p1
-rw-r--r-- 1 zcm zcm 259 11月 2 16:26 p1.c
-rwxrwxr-x 1 zcm zcm 5051 9月 21 10:23 p2
-rw-r--r-- 1 zcm zcm 152 9月 21 10:23 p2.c
-rwxrwxr-x 1 zcm zcm 5489 10月 17 09:26 travel
-rw-rw-r-- 1 zcm zcm 1405 10月 17 09:26 travel.c
[zcm@c #64]$
注意到了吗:没有“printf("------End of execl()\n"); “的输出噢。这正好说明了:exec没有建立一个与调用进程并发的新进程,而是用新进程取代了原来的进程。
linux下exec用法,linux下exec系列(一)相关推荐
- linux find ok用法,linux下find命令用法
一.Linux中find常見用法示例·find path -option [ -print ] [ -exec -ok command ] {} /; ...
- linux下sqlplus用法,linux也适用的sqlplus 用法
Oracle在Oracle 8.0.5之前都是使用字符界面来进行数据库的操作与管理的.而那时候其他最重要的工具就是SQL*plus, 它既可以编辑SQL语句,也可以编辑和调试pl/sql的程序. 下面 ...
- 在linux下nice用法,Linux下nice/renice命令小结
1. nice命令 内核根据进程的nice值决定进程需要多少处理器时间. nice值的取值范围是是: -20到20. 一个具有-20 的 nice 值的进程有很高的优先级. 一个 nice 值为 20 ...
- linux下gzip用法,Linux下tar和gzip命令的方法
tar [选项] 压缩(解压缩)的文件名 选项:-c 建立新的归档文件 -r 向归档文件末尾追加文件 -x 从归档文件中解出文件 -O 将文件解开到标准输出 -v 处理过程中输出相关信息 -f 对普通 ...
- linux curl d 用法,Linux下cURL使用教程之三:curl基本使用
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 在介绍完cURL简介和需要的HTTP协议概述之后.终于可以回归正题,进入curl的使用方法. curl命令格式 基本的使 ...
- linux里find用法,Linux中find命令基本使用方法
Linux中find命令是系统中查找文件的命令,可以帮助用户快速找出自己所需要的文件. 通过文件名查找 find -name 文件名 find /etc/ -name passwd ###查找/etc ...
- linux signal函数用法,linux信号机制之sigaction构造体浅析,signal 函数,信号捕捉.
来自:http://hi.baidu.com/phenix_yw/blog/item/6eb4ca391d1479f23a87ce19.html 信号安装函数sigaction(int signum, ...
- linux中gawk用法,Linux - gawk 命令
gawk 是 awk 的 GUN 版 =========================================== 是一种<模式扫描和处理>语言.它搜索一个或多个文件,查看这些文 ...
- linux env命令用法,Linux env命令
可以使用env命令传递环境变量,而无需在外部环境(当前shell)上设置它们. 假设您想运行一个Node.js应用程序,并为其设置USER变量. 您可以运行: env USER=flavio node ...
- linux 脚本scp用法,Linux scp命令用法及实例分享
Linux下scp的用法 scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令. 有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通 ...
最新文章
- 从“如何学会做一只机械表”讲如何创新,如何做好产品
- SFB公开课:TMG/IISARR/Web Application Proxy/发布UC(Lync/SFB)-2-通知
- Unix 和 Linux
- ARM Cortex-M3初探
- 类的加载过程三:Initialization
- MongoDB集群分片部署指南
- python size和count_python中size和count的区别
- 可缩放的思维导图_成就销售王者的23大流程,配思维导图,可直接学习收藏
- c语言水利工程编程题目,C程序设计(双语版)习题答案精选.doc
- 40.django中重要概念
- python_文件处理模式
- FPGA实验记录一:1位全加器设计
- Windows下Postman安装以及汉化
- 博弈论中的几个经典问题
- win10共享其它计算机文件,两台win10间如何文件共享
- python中outside function_运行提示SyntaxError: 'yield' outside function
- 用c语言实现矩阵的转置算法,C++实现矩阵原地转置算法
- 在windows下编译erlang内建函数(nif)的dll文件
- C语言试题173之实现插入排序算法
- 2010.5.11项目管理群主题:网游那些事-DDV731731-SSE