select en C++

E.R.L erobles en sensacd.com.mx
Mie Jun 13 16:55:43 CDT 2001


Hola a todos!!
Esperando q me puedan hechar una mano, ensequida les platico lo que me pasa:
tengo un problema con la funcion select que me trae asoleado....
El codigo es este:

.. rollo... 
if((dispositivo=open("/dev/lp0",O_WRONLY|O_APPEND)) == -1) error;
...mas rollo...
for(;;){
	enlinea=0
	while(!enlinea){
		FD_ZERO(&wfds);
		FD_SET(dispositivo,&wfds);
		sleep(2);
		select(dispositivo+1,NULL,&wfds,NULL,&timeout); //<--aqui es
		enlinea=FD_ISSET(dispositivo,&wfds);
		if(!enlinea){
			cout<<"impresora no esta en linea"<<endl;
		}
	}
	... mas rollo ...
}

---------Termina codigo -----
El problema esta en que el select   siempre me dice que la impresora esta en
linea y que puedo escribir en ella, aun cuando  la tengo apagada o desconectada
...
Y la verdad ya no se ni que ondas, por cierto tambien cambie
dispositivo+1 por FD_SETSIZE y nada cambio segui igual.

Espero me puedan ayudar.
de antemano les agradezco su  (des)orientacion.
---------------------------------------------------------
para salir de la lista, enviar un mensaje con las palabras
"unsubscribe ayuda" en el cuerpo a majordomo en linux.org.mx



Más información sobre la lista de distribución Ayuda