std::strerror
STD::
Defined in header | | |
---|---|---|
char* strerror( int errnum | | |
返回指向系统错误代码文本描述的指针。errnum
,与将由perror()
...
errnum
通常是从errno
变量,但是该函数接受任何类型的值。int
字符串的内容是特定于地区的。
返回的字符串不能被程序修改,但可以通过随后对strerror
功能。strerror
不需要线程安全。实现可能会将不同的指针返回到静态只读字符串文本,也可能会一次又一次地返回相同的指针,指向一个静态缓冲区,其中strror将字符串放置在其中。
参数
errnum | - | integral value referring to a error code |
---|
返回值
指针指向一个以空结尾的字节字符串,该字符串对应于errno
错误码errnum
...
注记
POSIX允许后续调用strerror
若要使先前调用返回的指针值无效,请执行以下操作。它还指定它是LC_MESSAGES
控制这些消息内容的locale方面。
例
二次
#include <iostream>
#include <cmath>
#include <cerrno>
#include <cstring>
#include <clocale>
int main()
{
double not_a_number = std::log(-1.0
if (errno == EDOM) {
std::cout << "log(-1) failed: " << std::strerror(errno) << '\n';
std::setlocale(LC_MESSAGES, "de_DE.utf8"
std::cout << "Or, in German, " << std::strerror(errno) << '\n';
}
}
二次
可能的产出:
二次
log(-1) failed: Numerical argument out of domain
Or, in German, Das numerische Argument ist ausserhalb des Definitionsbereiches
二次
另见
perror | displays a character string corresponding of the current error to stderr (function) |
---|---|
E2BIG, EACCES, ..., EXDEV | macros for standard POSIX-compatible error conditions (macro constant) |
c关于strror的文档
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。