Perror和std::cerr的使用
perror and std::cerr use
谁能告诉我std::cerr
和perror
在使用上有什么不同?
void perror ( const char * str );
http://www.cplusplus.com/reference/cstdio/perror/
perror
和cerr
是不同的东西。cerr
-是与stderr
相连的std::ostream
类的对象。perror
打印errno
和您在stderr
中的字符串。
你的问题基本上归结为iostream vs . studio。一个类似的问题已经在这里得到了回答。
如果你在c++中工作,除非你想做一些非常具体的事情,否则cerr绝对比perror更可取。唯一真正的区别是cerr实际上与
相同。fprintf(stderr, const char*, arg1, ...);
,而perror也将根据errno加载并显示相应的错误消息。你也不能用perror来显示变量所以你不能用
perror("Something went wrong, i: %d", i);
相关文章:
- 使用std::multimap迭代器创建std::list
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从持续时间构造std::chrono::system_clock::time_point
- std::具有相同基类的类的变体
- std::向量与传递值的动态数组
- 使用std::vector的OpenCL矩阵乘法
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 尝试将 std::cerr 重定向到文件时出现访问冲突异常
- 如何在 std::ofstream 和 std::cerr 之间切换
- 我应该使用 std::cerr 和 exit() 而不是抛出异常
- 将调试输出重定向到空流而不是 std::cerr
- 如何禁用std::cerr
- Perror和std::cerr的使用
- .cpp错误:与"std::cerr "中的"运算符<"不匹配<"正在转换文件 \" ""
- 多个线程写入std::cout或std::cerr
- std::cout/std::cerr seg faults
- std::cerr 不会等待 std::cout(运行 CTest 时)