execve函数作用是执行一个新的程序,程序可以是二进制的可执行程序,也可以是shell、pathon脚本
头文件上是unistd.h
函数原型:

int execve(const char * filename,char * const argv[ ],char * const envp[ ]);

参数介绍:

filename:程序所在的路径和名称argv:传递给程序的参数,数组指针argv必须以程序(filename)开头,NULL结尾envp:传递给程序的新环境变量,无论是shell脚本,还是可执行文件都可以使用此环境变量,必须以NULL结尾

函数返回值:

成功无返回值,失败返回-1

示例:

在test.c中调用脚本test.sh 并传递2个产生和一个环境变量
test.c

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>int main()
{char *filename = "./test.sh"; /*要执行文件的路径和名称*/char *test_argv[4]; /*要传递的函数,从第1个是真正的参数,第0个是要执行文件本身的名称,最后一个是NULL*/test_argv[0] = "sh"; test_argv[1] = "fisrt";test_argv[2] = "second";test_argv[3] = NULL;char *envp[] = {"T1=333", NULL};/*要传递的环境变量,最后一个为NULL*/if(0 != execve(filename, test_argv, envp)) {printf("execve failed\n");}
}

test.sh
确保test.sh 有可执行权限(chmod a+x test.sh)
在脚本中分别打印传递的参数和环境变量的值

#!/bin/bashecho $1
echo $2
echo $T1

结果显示

kayshi@ubuntu:~/code/execve$ ./test
fisrt
second
333

execve的使用说明相关推荐

  1. exit函数使用说明

    摘要:本文描述的是Linux手册页(3.73版本)中exit()函数的使用说明,使用exit()函数正常终止一个进程.原文来自:http://www.kernel.org/doc/man-pages/ ...

  2. abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...

    高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF 高性能计算平台ABAQUS 任务调度使用说明 作者:陈林 E-Mail:chenlin@ 日期:2017-1-10 ...

  3. linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...

    cmd replace 文件替换使用说明 帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [ ...

  4. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  5. Delphi开发的IOCP测试Demo以及使用说明。

    Delphi开发的IOCP,此为压力测试Demo和使用说明.

  6. oracle database link mysql_oracle database link使用说明

    oracle database link使用说明 作用: 将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象. 简易语法: CREATE [PUBLIC] ...

  7. 序列拼接工具Bowtie使用说明

    序列拼接工具Bowtie使用说明 2011-06-08 ~ ADMIN Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具.它在拼接35碱基长度的序列时,可以达到每小时2.5亿次 ...

  8. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明

    关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...

  9. 计算机网页基础课专业,关于《计算机应用基础》课程网页下的学习资源使用说明....

    关于<计算机应用基础>课程网页下的学习资源使用说明. 关于<计算机应用基础>课程网页下的学习资源使用说明 各位同学:大家好! 07春学期已接近一半的时间了,新生对课程还需要更多 ...

最新文章

  1. 漫谈16S的前世今生
  2. xilinx sg dma 注意事项
  3. linux下usb设备节点名不固定,解决Linux下USB设备节点ttyUSB名不固定的问题,生成固定USB转串口设备节点...
  4. minihomepage.exe 百度视频迷你主页
  5. 提升方法之AdaBoost算法
  6. [2021-09-09 T2] 就差⼀点——冒泡排序和反序表之间不为人知的秘密
  7. java对象间的转型,详细讲述Java中的对象转型
  8. 浅谈:Hadoop、spark、SaaS、PaaS、IaaS、云计算
  9. python中str是什么_Python中str字符串的功能介绍
  10. 阅读笔记-JavaScript学习指南
  11. 支付宝手机网站支付,错误代码 insufficient-isv-permissions 错误原因: ISV权限不足
  12. MySql嵌套查询+关联查询+多表查询+对应案例+mybatis动态sql 超详细
  13. 访问网站提示:您未被授权查看该页恢复办法
  14. XMLHttpRequest 的 responseType 属性
  15. Python+Vue计算机毕业设计教学辅助系统vmpc7(源码+程序+LW+部署)
  16. code回归采访哭 ladies_LADIES’CODE再次提到高恩妃和权梨世的车祸事故 在节目中流泪...
  17. Ubuntu系统查看显卡型号NVIDIA Corporation [10DE:1E82] -display UNCLAIMED
  18. Pycharm安装第三方库的方法
  19. 计算机作业ppt怎么做,《苏腾计算机作业》PPT课件.ppt
  20. 黑客入侵网络的50种方法

热门文章

  1. 让我摘下星星送给你_抖音摘下星星给你是什么歌_抖音想摘下星星给你歌名是什么_好特教程...
  2. jqgrid中treegrid记录属性lft和rgt的计算
  3. 计算当前时间距离元年一月一日的总天数,并显示现在是星期几
  4. 理解Memcached缓存[转载]
  5. 【JAVA】水仙花数
  6. 学习笔记-----Material design
  7. 2016全球大数据战略版图剖析(6):应用篇下
  8. 00后大学生,学微积,用手机,从味同嚼蜡到喜闻乐见
  9. Android混淆、反编译基础教程
  10. 【Neuralink 与大脑的神奇未来】Part 4:Neuralink 的挑战