int bdpoll(int argc, char *argv[], char *envp[]) { char devnode[FILENAME_MAX]; const char *devpath; bool is_cdrom = false; bool support_media_changed = false; int opt; while ((opt = getopt(argc, argv, "cm")) != -1) { switch (opt) { case 'c': is_cdrom = true; break; case 'm': support_media_changed = true; break; default: usage(argv[0]); return EXIT_FAILURE; } } if (optind == argc) { usage(argv[0]); return EXIT_FAILURE; } devpath = argv[optind]; if (!hotplug_devpath_to_devnode(devpath, devnode, sizeof(devnode))) { err("could not parse devpath"); } for (;;) { if (poll_for_media(devnode, is_cdrom, support_media_changed)) bdpoll_notify(devpath); sleep(interval_in_seconds); } return EXIT_SUCCESS; }
int bdpoll(int argc, char *argv[], char *envp[]) { const char *devname; char devnode[1024]; bool is_cdrom = false; bool support_media_changed = false; int opt; while ((opt = getopt(argc, argv, "cm")) != -1) { switch (opt) { case 'c': is_cdrom = true; break; case 'm': support_media_changed = true; break; default: usage(argv[0]); return EXIT_FAILURE; } } if (optind > argc) { usage(argv[0]); return EXIT_FAILURE; } devname = argv[optind]; snprintf(devnode, sizeof(devnode), "/dev/%s", devname); daemon(0, 0); for (;;) { if (poll_for_media(devnode, is_cdrom, support_media_changed)) bdpoll_notify(devname); sleep(interval_in_seconds); } return EXIT_SUCCESS; }