1 /* Determine the program name of a given process.
2 Copyright (C) 2019-2023 Free Software Foundation, Inc.
3 Written by Bruno Haible <bruno@clisp.org>, 2019.
4
5 This file is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as
7 published by the Free Software Foundation, either version 3 of the
8 License, or (at your option) any later version.
9
10 This file is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17
18 #ifndef _GET_PROGNAME_OF_H
19 #define _GET_PROGNAME_OF_H
20
21 /* This file uses _GL_ATTRIBUTE_MALLOC. */
22 #if !_GL_CONFIG_H_INCLUDED
23 #error "Please include config.h first."
24 #endif
25
26 #include <stdlib.h>
27 #include <sys/types.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 /* Returns the base name of the program that executes the given process,
34 possibly truncated, as a freshly allocated string, or NULL if it cannot
35 be determined. */
36 extern char *get_progname_of (pid_t pid)
37 _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
38
39 #ifdef __cplusplus
40 }
41 #endif
42
43 #endif /* _GET_PROGNAME_OF_H */