找回密码
 注册
查看: 632|回复: 4

程序中有一部分功能未实现,请教各位大侠

[复制链接]
发表于 2005-8-24 20:48:13 | 显示全部楼层 |阅读模式
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

char *env_init[]={"USER=unknown","PATH=/tmp",NULL};

int main()
{
int pid;
pid=fork();
printf("pid is %d\n",pid);
if(pid=0)
{
execle("/home/echoarg","./echoarg","myarg1","MYARG2",(char*)0,env_init);

printf("execle successfully\n");
}
waitpid(pid,NULL,0);
printf("waitpid successfully\n");
pid=fork();
if(pid=execlp("echoarg","echoarg","only1arg",(char*)0))
printf("execlp successfully");
exit(0);
}


echoarg的源码在/home下:

int main(int argc,char *argv[])
{
int i;
char **ptr;
extern char **environ;
for(i=0;i<argc;i++)
printf("argv[%d]:%s\n",i,argv);
for(ptr=environ;*ptr!=0;ptr++)
printf("%s\n",*ptr);
exit(0);
}


编译运行结果是:
pid is 0
waitpid successfully
execlp successfullyexeclp successfullypid is 4912
waitpid successfully
execlp successfullyexeclp successfully


为什么没有execle的运行结果?
其中/home下的echoarg运行成功,可以输出结果.
请教各位高手哪里出问题了?
发表于 2005-8-25 09:13:09 | 显示全部楼层
if(pid = 0)
你不觉得这行有问题么?
回复

使用道具 举报

发表于 2005-8-25 09:13:45 | 显示全部楼层
if(pid=execlp("echoarg","echoarg","only1arg",(char*)0))
回复

使用道具 举报

 楼主| 发表于 2005-8-25 09:55:12 | 显示全部楼层
谢谢板主
回复

使用道具 举报

发表于 2005-8-25 10:21:41 | 显示全部楼层
哇,版主很强呀,佩服佩服,我也上了一课,呵呵!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-7 23:52 , Processed in 0.028294 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表