进程问题

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还流着
...全文
106 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghtsao 2003-05-07
  • 打赏
  • 举报
回复
远程过程调用有个生存期的管理和引用计数管理,生存期未结束,服务不会因调用结束而中止,引用计数>0,服务器就要等待释放,通常这些参数可以在程序里控制。至于会出现多个实例,也必须设置远程服务的线程和进程模型。

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧