1 /*
2 * Helper program for strace-D.test
3 *
4 * Copyright (c) 2019-2020 Dmitry V. Levin <ldv@strace.io>
5 * All rights reserved.
6 *
7 * SPDX-License-Identifier: GPL-2.0-or-later
8 */
9
10 #include "tests.h"
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <string.h>
14 #include <unistd.h>
15
16 int
17 main(void)
18 {
19 static const char status[] = "/proc/self/status";
20 FILE *fp = fopen(status, "r");
21 if (!fp)
22 perror_msg_and_fail("fopen: %s", status);
23
24 static const char prefix1[] = "PPid:";
25 static const char prefix2[] = "TracerPid:";
26 char *line = NULL;
27 size_t n = 0;
28
29 while (getline(&line, &n, fp) > 0) {
30 if (strncmp(line, prefix1, sizeof(prefix1) - 1) == 0 ||
31 strncmp(line, prefix2, sizeof(prefix2) - 1) == 0)
32 fputs(line, stdout);
33 }
34
35 if (!line)
36 perror_msg_and_fail("getline");
37
38 free(line);
39 fclose(fp);
40
41 return 0;
42 }