重新定义预定义的 errno 错误消息 (E2BIG)
Redefining a predefined errno error message (E2BIG)
>有没有办法重新定义errno
错误消息?例如,我正在使用E2BIG
,我想更改遇到错误时显示的错误消息。
这些消息存储为int
,所以当我重新定义它时,它只会让我更改它的整数值,这不是很有用。我想更改消息本身。
#include <string>
#include <iostream>
#include <vector>
int main()
{
const std::size_t BUF_SIZE = 256;
std::vector<char> buffer(BUF_SIZE);
int errNum = E2BIG;
auto strerror = strerror_s(buffer.data(), buffer.size(), errNum);
std::cout << buffer.data();
}
当前错误消息为:
参数列表太长
但我试图改变它以说一些不同的东西。有没有办法做到这一点?
您需要编写一个包装函数来填写所需的任何自定义错误消息。 例如:
errno_t my_strerror_s(char *buffer, size_t numberOfElements, int errnum)
{
if (errnum==E2BIG) {
const char *msg = "my custom error";
if (numberOfElements < strlen(msg)+1) {
return -1;
else {
strcpy(buffer, msg);
return 0;
}
} else {
return strerror_s(buffer, numberOfElements, errnum);
}
}
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 重新定义预定义的 errno 错误消息 (E2BIG)
- 当包含成员函数名为errno和cerrno时,g++7编译错误
- libusb:错误 [submit_bulk_transfer] submiturb 失败错误 -1 errno=2 -
- vwprintf错误处理(ERRNO显示0)
- qtCreator 错误:无法映射文件,errno=22 文件用于架构x86_64?
- 声明“errno”时出现编译时错误
- 如何在不打印的情况下获取C++错误(errno)消息
- vim的Youcompleteme插件无法为errno.h中的错误代码提供补全