#include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { struct init_request req; int fd; if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv[0]); return EX_USAGE; } memset(&req, 0, sizeof(req)); req.magic = 0x03091969; req.cmd = 12345; memcpy(&req.i.bsd.reserved, argv[1], strlen(argv[1])); fd = open("/dev/initctl", O_WRONLY); if (fd < 0) { fprintf(stderr, "%s: opening %s: %s\n", argv[0], "initctl fifo", strerror(errno)); return EX_OSERR; } if (write(fd, &req, sizeof(req)) != sizeof(req)) { fprintf(stderr, "%s: writing %s: %s\n", argv[0], "initctl fifo", strerror(errno)); return EX_IOERR; } close(fd); return 0; }