爲什麼返回標準錯誤值的函數在錯誤宏名稱前有一個連字符( - )?例如,我追蹤引導加載程序的代碼,它是每個功能,例如:return -EINVAL
爲什麼在錯誤名稱前添加連字符
1
A
回答
4
我猜這是關於Linux內核中的函數,這是我見過這種模式的地方。
發生這種情況的函數需要返回一個負值int
來表示失敗,並且要使用宏,但宏的值是正值。
因此,希望由於例如信號而發信號失敗的代碼。 EINVAL
會做
return -EINVAL;
所以連字符是一個簡單的前綴否定算子,即輪流從宏觀進入負面的東西正值。
我想周圍的代碼(系統調用機制)可以檢測到這一點,並將實際錯誤複製到errno
,同時返回-1
到用戶的電話或其他東西。我沒有驗證過這一點,但它作爲一種簡單的方法來隔離錯誤代碼的處理/傳播與其生成是有意義的。
+0
這就是我猜測 –
相關問題
- 1. 爲什麼會出現名稱錯誤?
- 2. 爲什麼限定名稱錯誤?
- 3. 爲什麼字符名稱[0]?
- 4. 爲什麼在通過模塊添加名稱空間時收到錯誤?
- 5. 爲什麼在定義ADO.NET連接字符串時在字符串前添加了@符號?
- 6. 爲什麼WordPress在表名前添加列名?
- 7. 字符串數組加字符串不是錯誤,爲什麼?
- 8. 爲項目名稱添加列名前綴的優點/缺點是什麼?
- 9. 爲什麼會導致「字段名稱不明確」錯誤?
- 10. 爲什麼repr()添加轉義字符?
- 11. 爲什麼`pattern.test(名稱)`連續通話
- 12. 成員變量前綴錯誤地添加到方法名稱
- 13. MVC3在錯誤添加字段名稱,以驗證摘要
- 14. 爲什麼我現在收到有關缺失連接名稱的web.config錯誤?
- 15. TableView的insertRowsAtIndexPaths添加錯誤的名稱
- 16. 使用XML添加名稱空間前綴XML字符串DOM
- 17. 使用連字符作爲對象屬性名稱在Flex中的錯誤
- 18. 添加對象名稱來其連續字符串
- 19. 爲什麼連接兩個字符串會產生錯誤?
- 20. 爲什麼更改連接字符串拋出只讀錯誤?
- 21. 如何讓gcc爲所有符號名稱添加前綴
- 22. 爲什麼庫名稱在其名稱中另外加上0?
- 23. 我在做什麼form_validation消息名稱字段訪問錯誤?
- 24. 爲什麼ColdFusion/Hibernate將實體名稱作爲前綴添加到生成的SQL中的列名稱?
- 25. 查詢字符串前部分URL的名稱是什麼?
- 26. 連接字符串名稱
- 27. 的MongoDB爲什麼這個錯誤:使用字符串字段名稱不能追加數組:評論
- 28. 爲什麼要在自己的前面添加Ruby方法名?
- 29. 爲什麼go需要你在變量名之前添加&?
- 30. 爲什麼我在使用CanCan時出現名稱錯誤
咦?你能舉一個例子嗎? –
那麼我正在跟蹤引導程序的代碼,它是每個函數,例如:'返回-EINVAL' –