/* * zzz.c: a wrapper around apm(8) that works on my dodgy laptop * * (C) 2000 Tony Finch */ static const char *const cvsid = "$dotat: zzz/zzz.c,v 1.2 2001/12/17 16:27:32 fanf Exp $"; #include #include #include #include #include #include #include int main() { int fd, vt, status; fd = open("/dev/vga", O_RDONLY); if(fd < 0) err(1, "open /dev/vga"); if(ioctl(fd, VT_GETACTIVE, &vt) < 0) err(1, "ioctl VT_GETACTIVE"); if(ioctl(fd, VT_ACTIVATE, 1) < 0) err(1, "ioctl VT_ACTIVATE"); switch(fork()) { case -1: err(1, "fork"); case 0: execl("/usr/sbin/apm", "apm", "-z", NULL); err(1, "exec apm -z"); default: wait(&status); if(!WIFEXITED(status) || WEXITSTATUS(status)) errx(1, "apm -z failed"); } sleep(3); if(ioctl(fd, VT_ACTIVATE, vt) < 0) err(1, "ioctl VT_ACTIVATE"); exit(0); }