Coverage Report

Created: 2025-10-09 06:07

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/postgres/src/port/pgstrsignal.c
Line
Count
Source
1
/*-------------------------------------------------------------------------
2
 *
3
 * pgstrsignal.c
4
 *    Identify a Unix signal number
5
 *
6
 * On platforms compliant with modern POSIX, this just wraps strsignal(3).
7
 * Elsewhere, we do the best we can.
8
 *
9
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
10
 * Portions Copyright (c) 1994, Regents of the University of California
11
 *
12
 * IDENTIFICATION
13
 *    src/port/pgstrsignal.c
14
 *
15
 *-------------------------------------------------------------------------
16
 */
17
18
#include "c.h"
19
20
21
/*
22
 * pg_strsignal
23
 *
24
 * Return a string identifying the given Unix signal number.
25
 *
26
 * The result is declared "const char *" because callers should not
27
 * modify the string.  Note, however, that POSIX does not promise that
28
 * the string will remain valid across later calls to strsignal().
29
 *
30
 * This version guarantees to return a non-NULL pointer, although
31
 * some platforms' versions of strsignal() reputedly do not.
32
 *
33
 * Note that the fallback cases just return constant strings such as
34
 * "unrecognized signal".  Project style is for callers to print the
35
 * numeric signal value along with the result of this function, so
36
 * there's no need to work harder than that.
37
 */
38
const char *
39
pg_strsignal(int signum)
40
0
{
41
0
  const char *result;
42
43
  /*
44
   * If we have strsignal(3), use that --- but check its result for NULL.
45
   */
46
0
#ifdef HAVE_STRSIGNAL
47
0
  result = strsignal(signum);
48
0
  if (result == NULL)
49
0
    result = "unrecognized signal";
50
#else
51
52
  /*
53
   * We used to have code here to try to use sys_siglist[] if available.
54
   * However, it seems that all platforms with sys_siglist[] have also had
55
   * strsignal() for many years now, so that was just a waste of code.
56
   */
57
  result = "(signal names not available on this platform)";
58
#endif
59
60
0
  return result;
61
0
}