假設我正在調用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'值得一提,但它超越了檢查和發現:) –