- 论坛徽章:
- 0
|
[color=blue]Hi all , I\'m trying to read from a USB Barcode-Reader (on Solaris 8) ,\r\nI\'ve written the following code ...\r\nBut the program always exits on : (rval = ioctl(fd, I_PUSH,\"usbkbm\"))\r\n\r\nPlease if anyone has any ideas on what causes it to fail ?\r\nOr how should I try to access the Barcode Device ?\r\n\r\nYour help is very much appreciated !\r\nThanks[/color]\r\n#include <sys/stream.h>;\r\n#include <sys/kbio.h>;\r\n#include <sys/kbd.h>;\r\n\r\n#include <sys/types.h>; /*streamio -- STREAMS ioctl commands (for I_PUSH) */\r\n#include <sys/stropts.h>; /*streamio -- STREAMS ioctl commands (for I_PUSH) */\r\n\r\n#include <sys/vuid_event.h>; \r\n\r\n#include <time.h>; \r\n#include <stdio.h>; /* Standard input/output definitions */ \r\n#include <string.h>; /* String function definitions */ \r\n#include <stdlib.h>; \r\n#include <unistd.h>; /* UNIX standard function definitions */ \r\n#include <fcntl.h>; /* File control definitions */ \r\n#include <errno.h>; /* Error number definitions */ \r\n#include <termios.h>; /* POSIX terminal control definitions */ \r\n\r\n\r\n\r\nmain( int argc, char *argv[]){ \r\n int fd,rval; \r\n char c; \r\n Firm_event fe;\r\n \r\n fd = open(\"/dev/usb/hid3\",O_RDWR); \r\n if (fd < 0 ) { \r\n exit (1); \r\n } \r\n if ((rval = ioctl(fd, I_PUSH,\"usbkbm\")) < 0 ) { \r\n exit (1);[b] // The program exits here all the time [/b]**********\r\n } \r\n while (read(fd, &fe, sizeof(fe))) { \r\n printf(\"\\n\"); \r\n printf(\"%d\", fe.id); \r\n printf(\"%d\", fe.value); \r\n } \r\n} |
|