2012-05-03 20 views
26

Cả hai mô tả tệp stdin và stdout trỏ đến nó. Làm thế nào nó hoạt động? Có thể một số điểm đến một nguồn tài nguyên tốt để hiểu các thiết bị đầu cuối UNIX và các cuộc gọi hệ thống tương tác với nó./dev/tty trong UNIX là gì?

Trả lời

40

dev/tty là đối tượng hệ thống tệp đại diện cho bảng điều khiển hiện tại. Sao chép tập tin vào này "thư mục" từ dòng lệnh in ra nội dung của những tập tin này để giao diện điều khiển của bạn:

cp myfile.txt /dev/tty 

tương đương với

cat myfile.txt 

Những đối tượng được đó để cho phép bạn sử dụng các tập tin quen thuộc API để tương tác với bảng điều khiển. Đó là một cách thông minh để thống nhất giao diện điều khiển API với API tập tin. Bạn có thể sử dụng fopen, fprintf, v.v. để tương tác với bảng điều khiển giống như cách bạn tương tác với các tệp thông thường.

Ví dụ này viết "Hello, world\n" đến thiết bị đầu cuối:

#include <stdio.h> 

int main (int argc, const char * argv[]) { 
    FILE *f = fopen("/dev/tty", "w"); 
    fprintf(f, "Hello, world!\n"); 
    return 0; 
} 
+1

pseudoterminals là gì? Làm thế nào tôi có thể tương tác với họ? – Bruce

+4

@Bruce Pseudo-thiết bị đầu cuối là trừu tượng dọc theo dòng '/ dev/tty' đại diện cho, ví dụ, các thiết bị đầu cuối logic khác không tương ứng với thiết bị đầu cuối vật lý. Bạn có thể thấy chúng tại nơi làm việc bằng cách mở hai cửa sổ xterm, gõ 'tty' vào chúng để xem tên giả của chúng, và sau đó sao chép một tập tin trong một cửa sổ này sang cửa sổ kia. Ví dụ, nếu bạn gõ 'tty' và bạn nhận'/dev/ttys002' trong một cửa sổ và '/ dev/ttys000' trong cái kia, bạn có thể sao chép một tập tin từ một xterm vào' ttys ... 'của khác, và nội dung sẽ hiển thị trong cửa sổ khác. – dasblinkenlight

+0

ứng dụng/sử dụng hợp nhất hai API là gì và cung cấp một tính năng như vậy? –

Các vấn đề liên quan