Tại sao mã lỗi bị phủ định?


12

Rất thường tôi thấy trong phủ định mã C của mã lỗi được trả về, ví dụ return -EINVALthay vì return EINVAL. Tại sao sử dụng phủ định?

c 

Câu trả lời:


8

Trên nhiều UNIXen, quy ước cho các tòa nhà chọc trời là chúng trả về mã lỗi bị phủ nhận trong trường hợp có lỗi và giá trị thực tế trong trường hợp thành công.

Điều này được dịch ở phía không gian người dùng thành -1các lỗi có mã lỗi dương errnohoặc giá trị thực trong trường hợp thành công.

Sự cần thiết phải sử dụng hai giá trị trả về này là do nhiều trả về trong loại ngôn ngữ này gây khó chịu, vì bạn phải sử dụng các tham số ngoài để đưa ra một lỗi cuối cùng.


4

Đó là một quy ước; rất nhiều chức năng trả về kết quả tích cực nghiêm ngặt về thành công và kết quả tiêu cực đối với thất bại. Ban đầu, nó có liên quan đến mã trả về của quy trình Unix. Một thành công được chỉ định bằng 0.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.