#include #include #include #include #include #include #include #include #include #include #define DEF_BKTRDEV "/dev/tuner0" static void _usage(void) { fprintf(stderr, "Usage: %s [-f ] \n", getprogname()); exit(EX_USAGE); } int main(int ac, char *av[]) { int ch; const char *devfn = DEF_BKTRDEV; u_int chan; char *ae; int dfd; while ((ch = getopt(ac, av, "f:")) != -1) switch (ch) { case 'f': devfn = optarg; break; } ac-= optind; av+= optind; if (ac != 1) _usage(); chan = strtoul(av[0], &ae, 10); if ((size_t)(ae - av[0]) < strlen(av[0])) _usage(); if ((dfd = open(devfn, O_RDWR)) == -1) err(EX_OSFILE, "cannot open tuner device %s", devfn); if (ioctl(dfd, TVTUNER_SETCHNL, &chan) == -1) warn("error setting channel"); close(dfd); return EX_OK; }