Tìm hiểu lệnh Linux - ioctl

Tên

ioctl - thiết bị điều khiển

Tóm tắc

#include

int ioctl (int d , int request , ...);

Sự miêu tả

Hàm ioctl điều khiển các thông số thiết bị cơ bản của các tệp đặc biệt. Đặc biệt, nhiều đặc tính hoạt động của các tệp đặc biệt ký tự (ví dụ như các đầu cuối) có thể được điều khiển với các yêu cầu ioctl . Đối số d phải là một bộ mô tả tệp mở.

Đối số thứ hai là mã yêu cầu phụ thuộc vào thiết bị. Đối số thứ ba là một con trỏ không định dạng đến bộ nhớ. Đó là truyền thống char * argp (từ những ngày trước khi void * là hợp lệ C), và sẽ được đặt tên cho cuộc thảo luận này.

Một yêu cầu ioctl đã được mã hóa trong nó cho dù đối số là một tham số trong hoặc tham số ngoài , và kích thước của đối số argp theo byte. Macro và định nghĩa được sử dụng để chỉ định yêu cầu ioctl được đặt trong tệp .

Giá trị trả lại

Thông thường, về số 0 thành công được trả về. Một vài ioctls sử dụng giá trị trả về như một tham số đầu ra và trả về một giá trị không âm khi thành công. Khi lỗi, -1 được trả về và errno được đặt một cách thích hợp.

Lỗi

EBADF

d không phải là một bộ mô tả hợp lệ.

EFAULT

argp tham chiếu đến khu vực bộ nhớ không thể tiếp cận.

ENOTTY

d không được liên kết với một thiết bị đặc biệt ký tự.

ENOTTY

Yêu cầu được chỉ định không áp dụng cho loại đối tượng mà bộ mô tả d tham chiếu.

EINVAL

Yêu cầu hoặc argp không hợp lệ.

Phù hợp với

Không có tiêu chuẩn duy nhất. Các đối số, trả về và ngữ nghĩa của ioctl (2) thay đổi tùy theo trình điều khiển thiết bị đang được đề cập (cuộc gọi được sử dụng như một sự bắt giữ cho các hoạt động không phù hợp với mô hình I / O dòng Unix ). Xem ioctl_list (2) để biết danh sách nhiều cuộc gọi ioctl đã biết. Các cuộc gọi chức năng ioctl xuất hiện trong phiên bản 7 AT & T Unix.