Ситуация такая что при данном коде, если происходит событие в wd то
оно замечательно обрабатывается. А все события в rd игнорируются :(
Пробовал вырезать полностью wd из кога чтоб проверить работатет ли
rd - работает!
В чем проблема подскажите?
gint err,fd;
fd_set rd,wd;
FD_ZERO(&rd);
fd = fileno(thread.stream);
FD_SET(fd,&rd);
FD_ZERO(&wd);
FD_SET(thread.fifo,&wd);
while(1){
err = select(((fd < thread.fifo)?thread.fifo:fd)+1,&rd,&wd,NULL,NULL);
if(err < 0){
g_printf("Error!\n");
}
g_print("err = %d\n",err);
if(FD_ISSET(thread.fifo,&wd)){
read(thread.fifo,buf,BUF_SIZE);
g_printf("fifo :%s\n",buf);
break;
}
if(FD_ISSET(fd,&rd)){
...
Форум —
Development
