当前位置: 首页 > news >正文

execvp

问题:一个程序如何运行另一个程序?

答:程序调用execvp

#include<stdio.h>
main(){
char *arglist[3];
arglist[0]="ls";
arglist[1]="-l";
arglist[2]=0; //参数字符串必须以0结束
printf("********About to execute ls -l\n");
execvp("ls",arglist);
printf("********ls is done.bye\n");
}

execvp有两个参数:要运行的程序名和那个程序的命令行参数。当程序运行时命令行参数以argv[]传给程序。最后一个参数必须为NULL。

$ ./exec1
********About to execute ls -l
total 196
-rwxr-xr-x 1 orisun orisun 7568 2011-12-22 16:35 bounce
-rw-r--r-- 1 orisun orisun 1736 2011-12-22 16:35 bounce.c
-rw------- 1 orisun orisun 208896 2011-12-22 15:19 core
-rwxr-xr-x 1 orisun orisun 7169 2011-12-22 17:28 exec1

这里有一个问题:为什么printf("************ls is done.bye\n")没有执行?

因为调用execvp时,内核将新程序载入到当前进程,替代当前进程的代码和数据。

相关文章:

  • Java 读写文件大全
  • Selenium-Grid2 配置RemoteWebDriver
  • 错误备忘_ArcGIS_MatLab_ArcGIS 和 MatLab 集成时权限问题造成 MatLab 做图抛出系统内存错误...
  • 计算IMEI号的校验位
  • 删除所有的用户表,存储过程,游标的应用,动态SQL的使用
  • 简单的回顾
  • Memcached的线程模型及状态机
  • pre标签内文本自动换行
  • 最大熵工具包的使用
  • iptables开启,通过nginx无法访问php程序
  • 在linux系统(CentOS)上安装中文支持包
  • Android -- Glide框架详解(一)
  • win7下开启web服务器
  • Graylog2+Elasticsearch+Nxlog
  • 初到51CTO
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 2017年终总结、随想
  • ES10 特性的完整指南
  • gf框架之分页模块(五) - 自定义分页
  • JAVA SE 6 GC调优笔记
  • JavaScript 奇技淫巧
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Just for fun——迅速写完快速排序
  • mongodb--安装和初步使用教程
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • MYSQL 的 IF 函数
  • Python十分钟制作属于你自己的个性logo
  • SpriteKit 技巧之添加背景图片
  • tensorflow学习笔记3——MNIST应用篇
  • Vue--数据传输
  • Webpack 4 学习01(基础配置)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • windows-nginx-https-本地配置
  • 机器学习学习笔记一
  • 基于遗传算法的优化问题求解
  • 码农张的Bug人生 - 初来乍到
  • 树莓派 - 使用须知
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​决定德拉瓦州地区版图的关键历史事件
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #AngularJS#$sce.trustAsResourceUrl
  • #define、const、typedef的差别
  • (1)Nginx简介和安装教程
  • (14)Hive调优——合并小文件
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (pojstep1.1.2)2654(直叙式模拟)
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (九)信息融合方式简介
  • (六)vue-router+UI组件库
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (原創) 系統分析和系統設計有什麼差別? (OO)