Reading from a USB Barcode-Reader on Solaris8

I'm trying to read from a USB Barcode-Reader (on Blade150) ,
I've installed the patch for multiple keyboards and written the following code ...
Please if anyone has any ideas on what causes it to fail ?
Or how should I try to access the Barcode Device ?
Your help is very much appreciated !

Thanks
#include <sys/vuid_event.h>
#include <sys/kbio.h>
#include <sys/kbd.h>
#include <sys/types.h>
#include <stropts.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>

main( int argc, char *argv[]){
int fd,rval;
char c;
Firm_event fe;
fd = open("/dev/usb/hid0",O_RDWR);
if (fd < 0 ) {
exit (1);
}
printf("open /dev/usb/hid0 O.K\n");
if ((rval = ioctl( fd , I_PUSH,"usbkbm" )) < 0 ) {
perror("ioctl failed");
exit (2);
}
printf(" ioctl O.K\n");
while (read(fd, &fe, sizeof(fe))) {
printf("fe.id=%d\n", fe.id);
printf("fe.value=%d\n", fe.value);
}
}

output:
open /dev/usb/hid0 O.K
ioctl failed: Invalid argument
[1272 byte] By [Yuval_] at [2007-11-19 0:14:42]