diff options
| author | Michael Jones <michaelrj@google.com> | 2022-10-04 16:47:24 -0700 |
|---|---|---|
| committer | Michael Jones <michaelrj@google.com> | 2022-10-07 11:07:06 -0700 |
| commit | a9f95b769efe4fa4d4dc4a01b5bbfc4e3571a389 (patch) | |
| tree | e9cd67f4d68a4701807321f3767f2496e255c437 /libc/src/string/strerror_r.cpp | |
| parent | 6a6f10fd23b2730e2c01051541c5a83f5df9131b (diff) | |
[libc] add strerror_r function
I've implemente the gnu variant of strerror_r since that seems to be the
one more relevant to what we're trying to do.
Differential Revision: https://reviews.llvm.org/D135227
Diffstat (limited to 'libc/src/string/strerror_r.cpp')
| -rw-r--r-- | libc/src/string/strerror_r.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/libc/src/string/strerror_r.cpp b/libc/src/string/strerror_r.cpp new file mode 100644 index 000000000000..30147152c448 --- /dev/null +++ b/libc/src/string/strerror_r.cpp @@ -0,0 +1,23 @@ +//===-- Implementation of strerror_r --------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "src/string/strerror_r.h" +#include "src/__support/common.h" +#include "src/__support/error_to_string.h" + +#include <stddef.h> + +namespace __llvm_libc { + +// This is the gnu version of strerror_r. The XSI version may be added later. +LLVM_LIBC_FUNCTION(char *, strerror_r, + (int err_num, char *buf, size_t buflen)) { + return const_cast<char *>(get_error_string(err_num, {buf, buflen}).data()); +} + +} // namespace __llvm_libc |
