37 lines · 866 B · C
RawDownload
#define _GNU_SOURCE #include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <sys/syscall.h>#include <sys/types.h>#include <sys/wait.h>#include <unistd.h> static const char *pid_path; static void *spawn_child(void *unused) {    (void)unused;    pid_t child = fork();    if (child == 0) {        execlp("sleep", "sleep", "120", NULL);        _exit(127);    }    if (child < 0) return NULL;    FILE *file = fopen(pid_path, "w");    if (file != NULL) {        fprintf(file, "%ld %d\n", syscall(SYS_gettid), child);        fclose(file);    }    waitpid(child, NULL, 0);    return NULL;} int main(int argc, char **argv) {    if (argc != 2) return 2;    pid_path = argv[1];    pthread_t worker;    if (pthread_create(&worker, NULL, spawn_child, NULL) != 0) return 3;    if (pthread_join(worker, NULL) != 0) return 4;    return 0;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t