进程问题

zhuxz 2003-05-06 05:24:46
#include <unistd.h>
#include <stdio.h>
#include <rpc/rpc.h>
#include "Ex.h"
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define HOST "localhost"
///////////////////////////////////////////////////////////////////////////////
CLIENT * handle;
myinfo getstr(int index);
////////////
void main()
{ myinfo RES;

handle= clnt_create(HOST,EXPROG,EXVERS,"tcp"); //与远程服务端链接
while( handle == 0 )
{
int pid = fork();
if(pid==0) {
if (execlp("./server","server",(char *) 0) <0) //启动远程的服务端
{
fprintf(stderr,"%s","error");
}
exit(0);
}
if (pid>0)
{
handle= clnt_create(HOST,EXPROG,EXVERS,"tcp");

}


}


//调用远段的程序
for(int i=0;i<17;i++){
RES = getstr(i);
fprintf(stderr, "<%d>%s\n", RES.index, RES.info);
}
}
//////////////////////////////////////////////////////////////////////////////////

为什么我执行后,老有多个server启动,而且父进程关闭了,server还流着
...全文
45 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ghtsao 2003-05-07
远程过程调用有个生存期的管理和引用计数管理,生存期未结束,服务不会因调用结束而中止,引用计数>0,服务器就要等待释放,通常这些参数可以在程序里控制。至于会出现多个实例,也必须设置远程服务的线程和进程模型。
回复
相关推荐
发帖
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
帖子事件
创建了帖子
2003-05-06 05:24
社区公告
暂无公告