Tập tin thiết bị
PC DOS, TOS, OS/2 và Windows

Tập tin thiết bị là một từ khóa dành riêng được sử dụng trong hệ thống PC DOS, TOS, OS/2 và Windows để cho phép truy cập vào một số cổng và thiết bị nhất định.
MS-DOS mượn khái niệm tập tin đặc biệt từ Unix nhưng đổi tên chúng thành các thiết bị' (device)'. Bởi vì các phiên bản đầu tiên của MS-DOS không hỗ trợ hệ thống phân cấp thư mục, các thiết bị được phân biệt với các tập tin thông thường bằng tên được đặt từ từ dành riêng. Điều này có nghĩa là một số tên tập tin nhất định được dành riêng cho các thiết bị và không được dùng để đặt tên cho các tập tin hoặc thư mục mới. Bản thân các tên dành riêng đã được chọn để tương thích với việc xử lý "tập tin đặt biệt" của lệnh PIP trong CP/M. Có hai loại thiết bị trong DOS: Block Device (được sử dụng cho ổ đĩa) và Character Device (nói chung là tất cả các thiết bị khác, bao gồm cả thiết bị COM và PRN).
DOS sử dụng các tập tin thiết bị để truy cập máy in và cổng. Hầu hết các phiên bản Windows cũng có hỗ trợ điều này, nó có thể gây nhầm lẫn khi cố gắng tạo các tập tin và thư mục có tên tương tự vì chúng không thể có những tên này. Các phiên bản 2.x của MS-DOS cung cấp tham số AVAILDEV trong CONFIG.SYS, nếu được đặt thành FALSE thì các tên đặc biệt này chỉ hoạt động nếu có tiền tố là \DEV\, do đó hệ thống cho phép các tệp thông thường được tạo với các tên này
GEMDOS, một phần giống DOS của Atari TOS, hỗ trợ các tên thiết bị tương tự như DOS nhưng không giống hoàn toàn như DOS, nó yêu cầu ký tự ":" ở cuối (đây là tùy chọn trên DOS) để xác định chúng là thiết bị khác với tên tập tin thông thường (do đó "CON:" sẽ hoạt động trên cả DOS và TOS, nhưng "CON" sẽ chỉ là tên của một tập tin thông thường trên TOS, nhưng trên DOS nó là tập tin driver thiết bị). Trong MiNT và MagiC, chế độ xem hệ thống tập tin hợp nhất tương tự UNIX đặc biệt được sử dụng thông qua ký tự ổ đĩa "U:", cụ thể là trong "U:\DEV".
| Từ khóa thiết bị | Sử dụng làm đầu vào | Sử dụng làm đầu ra |
| --- | --- | --- |
| CON | Nhận dữ liệu đã nhập cho đến khi nhấn ^Z (Ctrl-Z). | In dữ liệu ra console. |
| PRN | — | In văn bản tới trình in, thường được chuyển hướng đến LPT1 hay LST. Đôi khi có thể cấu hình lại cho các thiết bị khác. |
| AUX (không phải trong OS/2) | Đọc dữ liệu từ thiết bị phụ trợ, thường là thiết bị nối tiếp như COM1. Đôi khi có thể cấu hình lại cho các thiết bị khác. | Gửi dữ liệu đến thiết bị phụ trợ, thường là thiết bị nối tiếp như COM1. Đôi khi có thể cấu hình lại cho các thiết bị khác. |
| NUL | Trả về null hoặc không có dữ liệu. | Từ chối nhận dữ liệu |
CLOCK$ (vẫn được đặt tên là CLOCK trong một số phiên bản MS-DOS 2.11): —
KEYBD$ (chỉ trong MS-DOS đa nhiệm): ?
KBD$ (chỉ trong OS/2): ?
SCREEN$ (chỉ trong MS-DOS đa nhiệm và OS/2): ?
POINTER$ (chỉ trong OS/2): ?
MOUSE$ (chỉ trong OS/2): ?
$IDLE$ (chỉ trong DR-DOS (từ 5.0) và DOS đa người dùng (thuộc Concurrent DOS 386)): —
CONFIG$ (chỉ trong MS-DOS 7.0 và cao hơn): —
| LST (chỉ trong 86-DOS và DOS 1.x, cũng có trong MS-DOS 2.11 của Hewlett-Packard cho HP Portable Plus) | Không trả về dữ liệu. | Gửi dữ liệu đến trình in dòng. (LPT2 cho MS-DOS 2.11 của Hewlett-Packard) |
| PLT (chỉ trong MS-DOS 2.11 của Hewlett-Packard cho HP Portable Plus) | Không trả về dữ liệu. | Gửi dữ liệu đến trình vẽ được chỉ định trước. Có thể cấu hình lại thiết bị trình vẽ kèm theo. |
| LPT1, LPT2, LPT3 và đôi khi là LPT4 (trong DR-DOS 7.02 trở lên và một số phiên bản của DOS đa người dùng) | — | Gửi dữ liệu đến cổng song song đã chọn. |
| COM1, COM2, COM3, COM4 | Đọc dữ liệu từ cổng nối tiếp đã chọn. | Gửi dữ liệu đến cổng nối tiếp đã chọn. |
82164A (chỉ trong MS-DOS 2.11 của Hewlett-Packard cho HP Portable Plus): Chuyển hướng tới COM2.
Sử dụng shell chuyển hướng và các đường hầm, dữ liệu có thể được gửi đến hoặc nhận từ một thiết bị. Ví dụ: nhập nội dung sau sẽ gửi tệp c:\data.txt đến máy in:
TYPE c:\data.txt > PRN
PIPE, MAILSLOT và MUP là các thiết bị Windows tiêu chuẩn khác.