我正在为大学做一个客户端 - 服务器项目。对于客户端,我必须使用select()系统调用。首先,我需要打印“>”然后等待,使用select(),如果socket准备好从服务器读取通知或stdin准备好从终端读取。 当我尝试打印“>”时,我遇到了这个问题:
input(socket or stdin)
>
但我希望:
>
input(socket or stdin).
有人可以帮助我吗? 这是我的代码的一部分:
...
...
FD_SET(sd, &master);
FD_SET(std_in, &master);
fdmax = sd;
for(;;){
printf(">");
read_fds = master;
ret = select(fdmax+1, &read_fds,NULL, NULL,NULL);
check_error_rs(ret,0);
for(cont = fdmax + 1; cont >= 0; cont--){
if(FD_ISSET(cont, &read_fds)){
if(cont == std_in){
scanf("%s",send_buf);
if(strcmp(send_buf,"!help") == 0){
.....
}
if(strcmp(send_buf,"!who") == 0){
.....
}
}
if(cont == sd){
check_notify();
}
}
}
}
答案 0 :(得分:0)
在fflush(stdout)
select()
read_fds = master;
fflush(stdout);
ret = select(fdmax + 1, &read_fds, NULL, NULL, NULL);