在我的代码中的某些地方,我打印这样的调试消息:
int ret = getLinkSpeed(device.getSysName(), linkSpeed);
if (ret < 0)
{
logDebug("Failed to obtain port speed for this device. Error: " + std::string(strerror(errno)));
}
Run Code Online (Sandbox Code Playgroud)
从文档中可以看出,在某些情况下strerror是否会返回0并不完全清楚(这会导致我的代码崩溃).有谁知道它是否安全?
小智 11
为什么不编写一个函数来执行此操作:
string ErrStr() {
char * e = strerror(errno);
return e ? e : "";
}
Run Code Online (Sandbox Code Playgroud)
这很容易使用,自我记录,可以适应重新格式化输出,并涵盖strerror()可能返回NULL的可能性(我不知道它是否可以).
| 归档时间: |
|
| 查看次数: |
2311 次 |
| 最近记录: |