草庐IT

strerror_l

全部标签

c++ - 为什么我不能使用 strerror?

我正在将一些代码移植到Windows,Microsoft编译器(VisualC++8)告诉我strerror()不安全。撇开微软提供的所有安全字符串中的烦恼因素不谈,我实际上可以看到一些已弃用的函数是危险的。但我不明白strerror()有什么问题。它接受一个代码(int),并返回相应的字符串,如果该代码未知,则返回空字符串。危险在哪里?C中有没有好的替代方法?C++中有没有好的替代方案?[编辑]已经得到了一些好的答案,现在了解到某些实现可能已经疯狂到实际写入公共(public)共享缓冲区-在单线程中重入是不安全的,更不用说线程之间了!-我的问题不再是“为什么我不能使用它,还有什么替代

c - strerror_r 应该允许多大的尺寸?

OpenGroupPOSIX.1-2001定义strerror_r,TheLinuxStandardBaseCoreSpecification3.1也是如此.但是我找不到对错误消息可以合理预期的最大大小的引用。我希望有一些定义可以放在我的代码中,但我找不到。代码必须是线程安全的。这就是为什么使用strerror_r而不是strerror。有人知道我可以使用的符号吗?我应该创建自己的吗?示例intresult=gethostname(p_buffy,size_buffy);interrsv=errno;if(result来自文档:开放组基本规范第6期:ERRORSThestrerror_

【C标准库】详解strerror函数

创作不易,感谢支持strerror头文件:string.h描述:strerror()函数接受一个参数:errnum,它是一个表示错误代码的整数值。此函数将错误代码转换为说明错误的合适字符串指针并返回。注意:strerror生成的错误字符串取决于开发平台和编译器格式:char*strerror(interrnum);参数:errnum--错误号,通常是errno。在c语言中有一条全局的错误码errno,在程序运行过程中,只要库函数调用失败,我们就会把此处产生的错误码放入变量errno中errno是一个全局的错误码的变量,当c语言的库函数在执行过程中,发生了错误,就会把对应的错误码赋值到errno

【C标准库】详解strerror函数

创作不易,感谢支持strerror头文件:string.h描述:strerror()函数接受一个参数:errnum,它是一个表示错误代码的整数值。此函数将错误代码转换为说明错误的合适字符串指针并返回。注意:strerror生成的错误字符串取决于开发平台和编译器格式:char*strerror(interrnum);参数:errnum--错误号,通常是errno。在c语言中有一条全局的错误码errno,在程序运行过程中,只要库函数调用失败,我们就会把此处产生的错误码放入变量errno中errno是一个全局的错误码的变量,当c语言的库函数在执行过程中,发生了错误,就会把对应的错误码赋值到errno
12