Hallo,
ich habe folgende Problematic. Ich habe ein Gerät welches an ttyUSB0
hängt via usb-serial hängt. Das ganze läuft auf debian oldstable ak
sarge und kernel 2.6.22.
In einer Schleife werden via select und read date vom Gerät geliefert.
Wenn ich das USB Gerät vom Bus abziehe und wieder dran stecke.
Bekomme ich vom select angezeigt dass daten vorhanden sind.
der read kommt dann mit 0 zurück.
while(1) {
FD_ZERO(&rfds);
FD_SET(st->fd, &rfds);
FD_SET(up->sock,&rfds);
ret = select(sel_fd, &rfds, NULL, NULL, &tv);
if (ret < 0) {
pos_trace_vlog("Select %d errno %d\n", ret , errno);
pos_trace_flush();
}
pthread_testcancel();
if (ret>0) {
if (FD_ISSET(st->fd, &rfds)) {
len = read(st->fd, (char *) buff, sizeof(buff));
if (len <= 0) {
pos_trace_vlog("read %d %d errno
%d\n", len, ret , errno);
pos_trace_flush();
}
....
ergibt
read 0 1 errno 0
read 0 1 errno 0
u.s.w
der select kommt auch sofort zurück ...
Der Devive Eintrag /dev/ttyUSB0 wird erst nach dem schliessen des
Filedescriptors gelöscht.
Weiss jemand wie ich im Programm sinnvollerweise erkennen kann ob ein
usb-serial device removed ist?
Gruss Michael
--
Linux mailing list [email protected]
subscribe/unsubscribe: http://lug-owl.de/mailman/listinfo/linux
Hinweise zur Nutzung: http://www.lug-owl.de/Mailingliste/hints.epo