免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3819 | 回复: 7
打印 上一主题 下一主题

关于应用execlp实现自定义函数的问题,参数传递问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-15 10:52 |只看该作者 |倒序浏览
大家好/
关于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命令就能实现列目录功能。
将execlp改为execl(/。。。),结果相同
问题一:为什么max没执行?(执行的华会打印最大值,本例中会打印444)
问题二:父进程中打印n为11,但子进程中没有exit(11)阿
敬请菜鸟老鸟不吝赐教@@@谢谢大家

Screenshot-1.png (93.62 KB, 下载次数: 40)

Screenshot-1.png

论坛徽章:
0
2 [报告]
发表于 2009-05-15 10:53 |只看该作者

关于应用execlp实现自定义函数的问题,参数传递问题?

难道是参数传递问题?该怎么传递那?

论坛徽章:
0
3 [报告]
发表于 2009-05-15 10:58 |只看该作者
Max是你自己写的程序?那要加路径

论坛徽章:
0
4 [报告]
发表于 2009-05-15 10:59 |只看该作者

回复 #3 5毛党党员 的帖子

在环境变量里加了
execl(“绝对路径”);也不行。。。

论坛徽章:
0
5 [报告]
发表于 2009-05-15 15:02 |只看该作者
子进程实现自己定义的函数?

如果是此函数在这个进程里,也不会用exec来调用吧?

如果max函数在父进程内也有定义的话,为什么不直接在子进程内调用max函数呢?

if(proFlag==0)
{
   printf("in child\n");
   Max("444","22");
}
else
{
   sleep(5);
   wait(&n);
   printf("IN parent:");
   printf("%d",n);
}

论坛徽章:
0
6 [报告]
发表于 2009-05-15 16:34 |只看该作者

回复 #5 lihoo_hoso 的帖子

我的意思是想子进程单独运行自己的程序即max()
max在父进程里没有定义,是一个单独的可执行文件,max内定义为int main(int argvc,char *agrv[])
关键是怎么在exec函数中将整数值传递???

论坛徽章:
0
7 [报告]
发表于 2009-05-15 22:12 |只看该作者

关于应用execlp实现自定义函数的问题,参数传递问题?

菜鸟老鸟帮帮忙阿,怎么没人回帖??如何在execv(),里传递main()所需参数??

论坛徽章:
0
8 [报告]
发表于 2009-05-17 16:56 |只看该作者

哦了

明白了,谢谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP