小弟正在看execlp的函数,写了一段代码,其中几行如下: ...... char *fname="$HOME/tmp/ttmp.txt"; ...... execlp( "cat", "cat", fname, 0 ); ...... exit( 0 ); 在$HOME/tmp目录下确有ttmp.txt文件,且我用system调用也可成功,编译正 常, 生成可执行程序后,运行报: cat: cannot open fname: No such file or directory (error 2). 请问众位老大,在execlp中能不能传char *, 还有输出重定向符参数怎...
by ylbaby2003 - C/C++ - 2004-10-25 16:46:49 阅读(3657) 回复(6)
大家好/ 关于execlp()用法网上都是以调用ls为例子的,如果想在子进程中实现自己定一的函数那? 程序如下 if(proFlag==0) { printf("in child\n"); execlp("Max","Max","444","22",(char *)0); perror("execlp"); } else { sleep(5); wait(&n); printf("IN parent:"); printf("%d",n); } 结果之显示了in child,后面没显示,也没有错误信息,查看进程列表有个max的僵尸进程,如果将max改为系统ls命令就能实现列目录功能...
exec系列函数中 int execlp(const char *filename,char *const arg0,...(char *)0 ) arg0参数起什么作用 实际程序中 execlp("iptables","","-t","nat","-L",NULL) 和execlp("iptables","iptables","-t","nat","-L",NULL)的效果是一样的
#include
#include
#include
#include
在linux 进程程序中这样写道: while(proFlag=fork()); if(proFlag==0) switch(funFlag) { case 1:execlp("max",agv[0],agv[1],(char *)0);//max 是同目录下的一个可执行函数 case 2:printf("*******");break; default: } 编译运行,程序能保证funFlag==1,但结果打印****** 问题0:用execlp()不用添加当前max()所在路径的环境变量吗? 问题1:不是说execlp会将父进程中的代码断覆盖成自己的么?怎么还会执行后面的代码?...