18int main(
int argc,
char **argv)
25 uid_t euid = geteuid();
30 fprintf(stderr,
"%s: must be setuid-root, please do: chown root, chmod u+s\n", argv[0]);
35 struct sched_param sparam;
36 sparam.sched_priority = 50;
38 status = sched_setscheduler(0, SCHED_FIFO, &sparam);
41 fprintf(stderr,
"%s: sched_setscheduler() returned %d, errno %d (%s)\n", argv[0],
status, errno, strerror(errno));
47 status = setpriority(PRIO_PROCESS, 0, -20);
50 fprintf(stderr,
"%s: setpriority() returned %d, errno %d (%s)\n", argv[0],
status, errno, strerror(errno));
59 fprintf(stderr,
"%s: cannot surrender root priveleges, setuid(%d) returned %d, errno %d (%s)\n", argv[0], uid,
status, errno, strerror(errno));
64 fprintf(stderr,
"Usage: %s program [arguments...]\n", argv[0]);
68 status = execvp(argv[1], &argv[1]);
70 fprintf(stderr,
"%s: execvp(\"%s\") returned %d, errno %d (%s)\n", argv[0], argv[1],
status, errno, strerror(errno));