Vietnamese (machine translation)

Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

V4L2 select()

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

7.72. V4L2 chọn()

7.72.1. Tên

v4l2-select - Ghép kênh I/O đồng bộ

7.72.2. Tóm tắt

#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)

7.72.3. Đối số

ZZ0000ZZ

Bộ mô tả tệp được đánh số cao nhất trong bất kỳ bộ nào trong ba bộ, cộng thêm 1.

ZZ0000ZZ

Mô tả tệp cần được theo dõi nếu lệnh gọi read() không bị chặn.

ZZ0000ZZ

Mô tả tệp cần được theo dõi nếu lệnh write() không chặn.

ZZ0000ZZ

Mô tả tệp cần theo dõi cho các sự kiện V4L2.

ZZ0000ZZ

Thời gian chờ đợi tối đa.

7.72.4. Sự miêu tả

Với chức năng ZZ0000ZZ, các ứng dụng có thể tạm dừng thực thi cho đến khi trình điều khiển đã nắm bắt được dữ liệu hoặc sẵn sàng chấp nhận dữ liệu cho đầu ra.

Khi luồng I/O đã được thương lượng, chức năng này sẽ đợi cho đến khi bộ đệm đã được lấp đầy hoặc hiển thị và có thể được xếp hàng đợi bằng ZZ0000ZZ ioctl. Khi bộ đệm đã có sẵn hàng đợi đi của trình điều khiển, hàm sẽ trả về ngay lập tức.

Khi thành công, ZZ0000ZZ trả về tổng số bit được đặt trong ZZ0005ZZ. Khi chức năng hết thời gian, nó sẽ trả về một giá trị bằng không. Khi thất bại, nó trả về -1 và biến ZZ0006ZZ là thiết lập một cách thích hợp. Khi ứng dụng không gọi ZZ0001ZZ hoặc ZZ0002ZZ và ZZ0003ZZ chức năng thành công, thiết lập bit của bộ mô tả tệp trong ZZ0007ZZ hoặc ZZ0008ZZ, nhưng tiếp theo là ZZ0004ZZ cuộc gọi sẽ thất bại. [1]

Khi việc sử dụng chức năng ZZ0000ZZ đã được thỏa thuận và trình điều khiển chưa chụp, chức năng ZZ0001ZZ bắt đầu chụp. Khi thất bại, ZZ0002ZZ trả về thành công và cuộc gọi ZZ0003ZZ tiếp theo cũng cố gắng bắt đầu chụp, sẽ trả về mã lỗi thích hợp. Khi người lái xe chụp liên tục (ví dụ như trái ngược với hình ảnh tĩnh) và dữ liệu đã có sẵn, hàm ZZ0004ZZ trả về ngay lập tức.

Khi việc sử dụng chức năng ZZ0000ZZ đã được thỏa thuận, Chức năng ZZ0001ZZ chỉ đợi cho đến khi trình điều khiển sẵn sàng cuộc gọi ZZ0002ZZ không chặn.

Tất cả các trình điều khiển triển khai ZZ0000ZZ hoặc ZZ0001ZZ chức năng hoặc truyền phát I/O cũng phải hỗ trợ ZZ0002ZZ chức năng.

Để biết thêm chi tiết, hãy xem trang hướng dẫn sử dụng ZZ0000ZZ.

7.72.5. Giá trị trả về

Khi thành công, ZZ0000ZZ trả về số lượng bộ mô tả chứa trong ba bộ mô tả được trả về, sẽ bằng 0 nếu thời gian chờ đã hết. Khi có lỗi -1 được trả về và biến ZZ0001ZZ được thiết lập phù hợp; các bộ và ZZ0002ZZ không được xác định. Có thể mã lỗi là:

EBADF

Một hoặc nhiều bộ mô tả tệp đã chỉ định một bộ mô tả tệp cái đó chưa mở.

EBUSY

Trình điều khiển không hỗ trợ nhiều luồng đọc hoặc ghi và thiết bị đã được sử dụng.

EFAULT

Con trỏ ZZ0000ZZ, ZZ0001ZZ, ZZ0002ZZ hoặc ZZ0003ZZ tham chiếu một vùng bộ nhớ không thể truy cập được.

EINTR

Cuộc gọi bị gián đoạn bởi một tín hiệu.

EINVAL

Đối số ZZ0000ZZ nhỏ hơn 0 hoặc lớn hơn ZZ0001ZZ.