> something like the following inside lseek() would take care of tape drives: > > if (S_ISCHR(sb.st_mode) || S_ISBLK(sb.st_mode)) { > if (ioctl(io->fd, FIODTYPE, &type) == -1) > err(1, "%s", io->name); > > if (type & D_TAPE) > return(EBADF) > }
I'd suggest ENODEV ("Operation not supported by device") rather than EBADF ("Bad file descriptor"). To do this correctly, we'd need some standard way to ask the device driver if the device can perform the seek or not. _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"