假设我正在调用write()并返回错误-8。我该如何检查哪一个记录的错误返回值代表了?在Linux下,如何检查C语言中的数值返回值的含义?
2
A
回答
2
查找strerror
联机帮助页。 (注意,尽管write()
应该只返回最差的-1
和errno
中的错误代码)。
4
你会经常使用
man functionname
或许
man -S2 functionname # specify other section (2, 3, 5, 7)
上失败成功返回0,非空,记录他们还成立errno
大部分功能。您可以通过使用strerror
功能(#include <string.h>
)
看着errno.h
errno
全局变量
- 的含义或使用便捷的辅助
perror
是打印错误基于strerror
的消息和给出的前缀:perror("oops, popen failed with: ");
很好,它并不在技术上需要一个全局变量。根据您的OS /库它可能是一个宏,一个ThreadLocal变量,既等等
0
形式上它没有返回-8,但一个错误代码。这些错误代码可以在手册中找到(例如:http://linux.die.net/man/2/write),您应该使用这些代码来验证一切是否正常。
所以,你可以使用:
write(..);
if(errno == EFAULT) { ...}
0
0
您不应该打印出返回值本身,而是strerror(return_value)
。您还可以查看man errno
以获取错误描述。
相关问题
- 1. C#中的语言可选返回值
- 2. 在C++编程语言中返回2语句的含义
- 3. ANTLR - 检查语义/值的含义
- 4. 在C语言中,检查分支语句的函数返回值的最佳做法是什么?
- 5. 最佳实践:如何检查C/C++中的NULL返回值
- 6. 检查宏中函数的返回值
- 7. 如何检查UIAlertView的返回值?
- 8. 如何检查函数指针在dlsym中的返回值?
- 9. 检查返回值++
- 10. 检查PFFile的返回值
- 11. 检查`isalpha`的返回值
- 12. 如何用C++语言/ getdate()定义表示时间值的值?
- 13. Hive查询语言只返回值不在其他表中的值
- 14. dataLayer.push()返回值含义
- 15. 如何检查在C#中相同的ELSEIF语句中的值
- 16. 从序言中的函数返回值
- 17. 如何检查GDB中函数的返回值?
- 18. c语言。函数的返回类型
- 19. 检查数据帧列中的值,返回一个值。
- 20. 如何检查PHP中SQL查询的返回值?
- 21. 如何以C语言返回指针
- 22. 返回值在C中未定义
- 23. 使用公式语言返回列值
- 24. 如果返回0,则检查值否则返回值
- 25. Excel在数组中查找值,返回下一个值
- 26. PHP - 检查if语句中的返回值
- 27. 比较C语言中的Unicode字符串比C#返回不同的值
- 28. 如何检查计数语句是否返回一个特定的值
- 29. 如何返回C++中的bitset值?
- 30. 蟒蛇:检查变量定义,并返回其值或返回
..或者'perror'? – 2011-12-01 14:08:59
实际的定义在'/ usr/include/asm-generic/errno.h'和'/ usr/include/asm-generic/errno-base.h'中 - 当然是由'errno.h'拖入的。 –
'perror'值得一提,但它超越了检查和发现:) –