Perror和std::cerr的使用

perror and std::cerr use

本文关键字:cerr std Perror      更新时间:2023-10-16

谁能告诉我std::cerrperror在使用上有什么不同?

void perror ( const char * str );
我想知道在c++应用程序中哪一个更可取,为什么更可取。

http://www.cplusplus.com/reference/cstdio/perror/

perrorcerr是不同的东西。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);