reset.c
上传用户:lsh121205
上传日期:2007-01-08
资源大小:25k
文件大小:1k
源码类别:

DVD

开发平台:

C/C++

  1. /*
  2.  * A noddy program which tries to reset all AGID's on the DVD-ROM drive.
  3.  */
  4. #include<stdio.h>
  5. #include<fcntl.h>
  6. #if defined(__OpenBSD__)
  7. # include <sys/dvdio.h>
  8. #elif defined(__linux__)
  9. # include <linux/cdrom.h>
  10. #else
  11. # error "Need the DVD ioctls"
  12. #endif
  13. #include<sys/ioctl.h>
  14. #include<errno.h>
  15. static int fd;
  16. #define DVD "/dev/cdrom"
  17. int main(int ac, char **av)
  18. {
  19. dvd_authinfo ai;
  20. char *device = DVD;
  21. int i;
  22. if (ac > 1)
  23. device = av[1];
  24. fd = open(device, O_RDONLY | O_NONBLOCK);
  25. if (fd < 0) {
  26. printf("unable to open dvd drive (%s).n", device);
  27. return 1;
  28. }
  29. for (i = 0; i < 4; i++) {
  30. memset(&ai, 0, sizeof(ai));
  31. ai.type = DVD_INVALIDATE_AGID;
  32. ai.lsa.agid = i;
  33. ioctl(fd, DVD_AUTH, &ai);
  34. }
  35. return 0;
  36. }