关于execv函数
来源:互联网 发布:深圳创意软件 编辑:程序博客网 时间:2024/06/04 01:36
exec函数有六个但是实际上掌握好一个自己熟悉的就好了,因为他们作用都是一样的,我在这里最喜欢用的是execv,所以就只讨论这个函数的用法。
期间代码要和fork交相使用,fork有两个返回值,父进程返回子进程的pid,子进程返回0,因为子进程可以用getppid()知道父进程的pid(父进程唯一是这个理论的支持),而父进程可以拥有多个子进程,所以无法用函数去单纯获得子进程pid。
函数原型
#include <unistd.h>
int exevc(const char *pathname,char *const argv[]);
关于argv里面的参数,之前我一直有所疑惑,先用一个简单的代码看看如果这样写里面会有什么::
#include <unistd.h>
#include <stdio.h>
int main(int argc,char* argv[])
{
printf("argv[0]::%s\n",argv[0]);
printf("argv[1]::%s\n",argv[1]);
printf("argv[2]::%s\n",argv[2]);
execv("/bin/ls",argv);
return 0;
}
运行结果和使用方法::
截图有点不清晰但是不影响观看,可以看出argv的结尾一定是空指针,而里面存放的就是命令要调用的参数。
以下是我对第二个参数进行的测试:
#include <unistd.h>
#include <stdio.h>
int main(int argc,char* argv[])
{
char *my[3] = {0};
my[0] = "nihao";
my[1] = "-l";
//my[2]空指针
execv("/bin/ls",my);
return 0;
}
运行结果:
可见运行结果并没有受到影响,所以可以得出结论
关于execv的第二个参数数组,他的第一个位置存放的东西对于程序没有影响(但是应该存应用程序名字本身,可是我发现里面不管放什么都不影响程序结果所以得出这个结论,因为我不知道它放程序名字的意义何在),但是第二个及第二个以后存放的就是她应该使用的参数,最终结尾是空指针。
- 关于execv函数
- execv()函数
- execv函数使用
- execv
- execv函数族用法展示
- C语言execv()函数:执行文件函数
- system()与execv()函数使用详解
- exec系列函数(execl,execlp,execle,execv,execvp)使用
- exec系列函数(execl,execlp,execle,execv,execvp)使用
- execl、execle、execlp、execv、execve和execvp函数
- execv使用
- execv使用
- linux execv
- execv使用
- execv使用
- execv使用
- execv注意事项
- 子进程调用execv函数后,对信号的处理不保留
- Swift初学入门之控制台输入函数
- 将eclipse项目导入到android studio心得体会
- linux grep
- 结构体对齐预处理指令
- hdu 3979 Monster
- 关于execv函数
- 并查集三
- iOS开发——创建依赖工程Framework
- C++中成员变量的初始化总结
- [poj 3080]Blue Jeans [kmp]
- Android轮播图实现
- Spark 2.0介绍:Spark SQL中的Time Window使用
- 排序算法总结
- 有向图最小树形图