2012-05-03 7 views
26

stdinとstdoutの両方のファイル記述子を指します。どのように機能するのですか?ある人が、UNIX端末やそれを操作するシステムコールを理解するための良いリソースを指しているかもしれません。UNIXでは/ dev/ttyとは何ですか?

答えて

40

dev/ttyは、現在のコンソールを表すファイルシステムオブジェクトです。コマンドラインから、この「ディレクトリ」にファイルをコピーすると、あなたのコンソールにこれらのファイルの内容を出力します:

cp myfile.txt /dev/tty 

は、これらのオブジェクトは、使い慣れたファイルを使用できるようにあります

cat myfile.txt 

に相当しますコンソールと対話するためのAPI。これは、コンソールAPIをファイルAPIと統合する巧妙な方法です。 fopenfprintfなどを使用して、通常のファイルと同じ方法でコンソールとやりとりすることができます。

この例では、端末に"Hello, world\n"を書き込みます

#include <stdio.h> 

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

疑似ターミナルは何ですか?どうすればそれらと対話できますか? – Bruce

+4

@Bruce擬似端末は、例えば物理端末に対応しない他の論理端末を表す '/ dev/tty'の行に沿った抽象です。 2つのxtermウィンドウを開き、その中に 'tty'と入力して擬似端末名を表示し、あるウィンドウ内のファイルをもう一方のウィンドウにコピーすることで、仕事でそれらを見ることができます。たとえば、 'tty'と打ち込んで、あるウィンドウに'/dev/ttys002'を、もう一方に '/ dev/ttys000'をつけたら、一つのxtermから' ttys ... 'にファイルをコピーすることができますotherとなり、コンテンツは別のウィンドウに表示されます。 – dasblinkenlight

+0

2つのAPIを統一し、そのような機能を提供するアプリケーション/用途は何ですか? –

関連する問題