在我的代碼中一些地方,我打印調試消息是這樣的:`std :: string(strerror(errno))`危險嗎?
int ret = getLinkSpeed(device.getSysName(), linkSpeed);
if (ret < 0)
{
logDebug("Failed to obtain port speed for this device. Error: " + std::string(strerror(errno)));
}
從documentation它並不完全清楚,如果字符串錯誤在一定條件下返回0(這將導致我的代碼崩潰)。有誰知道它是否安全?
根據其linux手冊頁:「在某些系統上,如果錯誤編號未知,strerror()將返回NULL。」 – 2010-06-08 10:29:05