]> rtime.felk.cvut.cz Git - can-benchmark.git/blob - latester/setpgid.c
Commit fixing that threads not cleaning up after themselves.
[can-benchmark.git] / latester / setpgid.c
1 #define _XOPEN_SOURCE 500
2 #include <unistd.h>
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <signal.h>
6
7 int main(int argc, char *argv[])
8 {
9         if (argc < 2) {
10                 fprintf(stderr, "Usage: %s <command>\n", argv[0]);
11                 return 1;
12         }
13         pid_t pid;
14         pid = atol(argv[1]);
15         if (setpgid(0, 0) != 0) {
16                 perror("setpgid");
17                 return 1;
18         }
19
20         char **newargv = malloc(sizeof(void*)*argc);
21         unsigned i;
22         for (i=1; i<argc; i++)
23                 newargv[i-1] = argv[i];
24         newargv[argc-1] = NULL;
25         kill(0, SIGSTOP);
26         execvp(argv[1], newargv);
27         perror("execvp");   /* execve() only returns on error */
28         exit(EXIT_FAILURE);
29 }