好像实现的功能不太一样啊!! linux: #include #include #include #include #include int main(int argc, char* argv[]) { pid_t id; id = getpid(); static char *largv[] = { "id", NULL }; printf("befor exec! %d\n",id); if(execv("test_execv", largv) == 0) printf("sleep over!\n"); else printf("sleep falure\n"); return 0; } 生成的可执行文件为test_execv,该函数的功能是嵌套的执行...
by xueyan - Linux文档专区 - 2006-06-24 19:31:19 阅读(1153) 回复(0)
在Linux下fork()是用来创建新的进程,即复制一个父进程,只有PID不一样; vfork()是用来创建子进程,复制父进程的数据段和堆栈段,与父进程共享代码段; 问题是: 1.为什么子进程调用exec或exit之前会一直在父进程的地址空间呢? 2.为什么子进程一定要调用exec或exit? 3.调用execv函数和vfork()有什么区别?不都是创建新的进程么? 不过execv函数就是替换掉当前的进程的全部信息,除了PID 而vfork()不就是创建新的进程么? 真的有点乱了....
各位,我现在遇到一个问题,希望能够得到大家的帮助,先谢过。 因为项目需要做一个自动化测试android应用的平台,我需要使用程序自动化打开android的emulator进行自动化测试,所以在linux下使用execv函数操作,关键代码如下: /*初始化execve传入命令*/ char *binary = (char*)malloc(8*sizeof(char)); char **newargv = (char **)malloc(16*sizeof(char *)); newargv[0] = "/media/career/android/source/out/host/linux-x86/...
#include
在主进程中fork出一个子进程, 再在子进程中调用execv执行一个程序, 请大侠帮忙分析一下execv执行的这个程序的上下文环境与主进程和子进程的关系? [ 本帖最后由 chzht001 于 2006-12-27 09:10 编辑 ]
在进程中执行如execvp()等函数时,俺有下面这些问题 1、打开的文件描述符怎么办?是自动关闭么? 2、连接的socket怎么办?是否自动关闭? 3、由主线程pthread_create()出来的其他线程是否被自动关闭. 4、已经sem_wait()的信号量怎么办? 谢谢
我的c程序需要调用一个shell脚本,但是发现用execv调用了shell脚本后,原来的c程序就在execv之后退出了,man了一下execv后发现有这么一段话: The exec*() system calls, in all their forms, load a program from an ordinary, executable file into the current process, replacing the current program. 请问有没有别的函数可以调用shell脚本,并且在shell脚本执行完成后还能退回到当前程序继续执行? [ 本帖最...
int execv(__const char*__path,char*__const __argv[]); 想请教一下__path参数该如何写?是可执行文件的所在路径吗?假设我有一个可执行文件ps在/home/chi目录下, __path参数是该写成"home/chi"?还是"home/chi/ps"?,在书上看该参数说明:要使用带路径名的文件名。 可是问题我两个都试了一下,均出现错误:./ps:没有那个文件或目录。 我写第二个参数如下:char *argv[]={"ps","-o","pid,ppid",NULL}; 调用execv函数:execv("hom...
配置终端时,在终端上显示: <27>Apr 6 16:14:50 inetd[625]: execv/etc/msftd/gwitelnetd:No such file or directory 请问这是什么问题,有解决方法嘛?