Tôi đã nhìn thấy tuyên bố sau trong một vài chương trình, hầu hết/tất cả dường như được tạo cho Linux.đọc (fd, NULL, 0); nó làm gì? nó được xác định rõ?
rv = read(fd, NULL, 0);
Trong một số chương trình trong vòng lặp, trong một số câu lệnh duy nhất.
Nó thực sự làm gì?
Trang người đàn ông nói rằng lời gọi như thế này có thể hoặc không thể kiểm tra lỗi ...
Ý nghĩa của giá trị trả lại là gì?
Loại mô tả tệp nào được hỗ trợ?
Và nếu rv==0
cách phân biệt "không có lỗi", ví dụ: "đóng socket".
Dường như căn bản không cầm tay. Người đọc linux (3) đọc trang nói rằng: 'Việc triển khai được cho phép, nhưng không bắt buộc, để thực hiện kiểm tra lỗi cho các yêu cầu read() của byte không.' POSIX nói: Trước khi bất kỳ hành động nào được thực hiện, và nếu nbyte bằng 0,() chức năng * có thể * phát hiện và trả về lỗi. – Duck