ERR_GET_LIB.3ossl 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. .\" -*- mode: troff; coding: utf-8 -*-
  2. .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
  3. .\"
  4. .\" Standard preamble:
  5. .\" ========================================================================
  6. .de Sp \" Vertical space (when we can't use .PP)
  7. .if t .sp .5v
  8. .if n .sp
  9. ..
  10. .de Vb \" Begin verbatim text
  11. .ft CW
  12. .nf
  13. .ne \\$1
  14. ..
  15. .de Ve \" End verbatim text
  16. .ft R
  17. .fi
  18. ..
  19. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
  20. .ie n \{\
  21. . ds C` ""
  22. . ds C' ""
  23. 'br\}
  24. .el\{\
  25. . ds C`
  26. . ds C'
  27. 'br\}
  28. .\"
  29. .\" Escape single quotes in literal strings from groff's Unicode transform.
  30. .ie \n(.g .ds Aq \(aq
  31. .el .ds Aq '
  32. .\"
  33. .\" If the F register is >0, we'll generate index entries on stderr for
  34. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  35. .\" entries marked with X<> in POD. Of course, you'll have to process the
  36. .\" output yourself in some meaningful fashion.
  37. .\"
  38. .\" Avoid warning from groff about undefined register 'F'.
  39. .de IX
  40. ..
  41. .nr rF 0
  42. .if \n(.g .if rF .nr rF 1
  43. .if (\n(rF:(\n(.g==0)) \{\
  44. . if \nF \{\
  45. . de IX
  46. . tm Index:\\$1\t\\n%\t"\\$2"
  47. ..
  48. . if !\nF==2 \{\
  49. . nr % 0
  50. . nr F 2
  51. . \}
  52. . \}
  53. .\}
  54. .rr rF
  55. .\" ========================================================================
  56. .\"
  57. .IX Title "ERR_GET_LIB 3ossl"
  58. .TH ERR_GET_LIB 3ossl 2025-01-17 3.4.0 OpenSSL
  59. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  60. .\" way too many mistakes in technical documents.
  61. .if n .ad l
  62. .nh
  63. .SH NAME
  64. ERR_GET_LIB, ERR_GET_REASON, ERR_FATAL_ERROR
  65. \&\- get information from error codes
  66. .SH SYNOPSIS
  67. .IX Header "SYNOPSIS"
  68. .Vb 1
  69. \& #include <openssl/err.h>
  70. \&
  71. \& int ERR_GET_LIB(unsigned long e);
  72. \&
  73. \& int ERR_GET_REASON(unsigned long e);
  74. \&
  75. \& int ERR_FATAL_ERROR(unsigned long e);
  76. .Ve
  77. .SH DESCRIPTION
  78. .IX Header "DESCRIPTION"
  79. The error code returned by \fBERR_get_error()\fR consists of a library
  80. number and reason code. \fBERR_GET_LIB()\fR
  81. and \fBERR_GET_REASON()\fR can be used to extract these.
  82. .PP
  83. \&\fBERR_FATAL_ERROR()\fR indicates whether a given error code is a fatal error.
  84. .PP
  85. The library number describes where the error
  86. occurred, the reason code is the information about what went wrong.
  87. .PP
  88. Each sub-library of OpenSSL has a unique library number; the
  89. reason code is unique within each sub-library. Note that different
  90. libraries may use the same value to signal different reasons.
  91. .PP
  92. \&\fBERR_R_...\fR reason codes such as \fBERR_R_MALLOC_FAILURE\fR are globally
  93. unique. However, when checking for sub-library specific reason codes,
  94. be sure to also compare the library number.
  95. .PP
  96. \&\fBERR_GET_LIB()\fR, \fBERR_GET_REASON()\fR, and \fBERR_FATAL_ERROR()\fR are macros.
  97. .SH "RETURN VALUES"
  98. .IX Header "RETURN VALUES"
  99. The library number, reason code, and whether the error
  100. is fatal, respectively.
  101. Starting with OpenSSL 3.0.0, the function code is always set to zero.
  102. .SH NOTES
  103. .IX Header "NOTES"
  104. Applications should not make control flow decisions based on specific error
  105. codes. Error codes are subject to change at any time (even in patch releases of
  106. OpenSSL). A particular error code can only be considered meaningful for control
  107. flow decisions if it is explicitly documented as such. New failure codes may
  108. still appear at any time.
  109. .SH "SEE ALSO"
  110. .IX Header "SEE ALSO"
  111. \&\fBERR_get_error\fR\|(3)
  112. .SH HISTORY
  113. .IX Header "HISTORY"
  114. \&\fBERR_GET_LIB()\fR and \fBERR_GET_REASON()\fR are available in all versions of OpenSSL.
  115. .PP
  116. \&\fBERR_GET_FUNC()\fR was removed in OpenSSL 3.0.
  117. .SH COPYRIGHT
  118. .IX Header "COPYRIGHT"
  119. Copyright 2000\-2023 The OpenSSL Project Authors. All Rights Reserved.
  120. .PP
  121. Licensed under the Apache License 2.0 (the "License"). You may not use
  122. this file except in compliance with the License. You can obtain a copy
  123. in the file LICENSE in the source distribution or at
  124. <https://www.openssl.org/source/license.html>.