2009-04-16 14 views
1

上記のコマンドを実行すると、X11が開きました。私は困惑している。私はそれを実行しましたか?私は物事を見ているときに私がプログラムを実行していないことをどのように確認できますか?テキストファイルを読むとプログラムが実行されるという考えは本当に嫌です。シンプルなcatコマンドや同様のコマンドを実行しているときに実行するプログラムを作ることは、どのようにプログラム可能ですか?"cat/tmp/dir /:0"コマンドは何をしますか?

+0

だから何が起こったのですか?あなたはテキスト端末にいて、Xが起動しましたか?なぜあなたはそのコマンドを実行していたのですか? – Zifre

+0

@Zifte:私は物を読んでいました:0はディスプレイに対応し、Xはそのファイルを/ tmp /に保存します。実際にどのように動作するかをテストすることが理にかなっていました。私は素敵なコードを読むのを待っていましたが、私はディスプレイを開いていました。 –

+0

'cat/tmp /:0'と入力しましたか?最初の$はシェルプロンプトだと思いますか? –

答えて

3

あなたは

file /tmp/:0 

を実行する場合は、これは通常の「テキスト」ファイルが、ソケットではありませんことを確認する必要があります。エイリアスlsしたがって

ls -F 

このようなファイルをシェル内で自動的に識別するのに役立ちます。

2

マシン:0はXディスプレイ(「マシン」の最初のディスプレイ)です
私は/ tmp /:0を見たことがありませんが、すべての不一致マシン名がlocalhostにマップされるようにマシンが構成されている可能性があります。 あなたは何も実行していません.Xサーバはcatから送られたコマンドをX命令として解釈しようとします。 httpアドレスに猫をしているようです。

+0

「sent by cat」を明確にすることはできますか?私はあなたが '猫X> Y'を意味すると思うが、上記のリダイレクトはありません –

+0

彼はいくつかを送っただろうか? –

+0

あなたの観察はおそらく正しいです。私はtmpを再確認し、私は見つけることができた:0 1つの深い。私はそれに応じて質問を変更しました。ありがとうございました! –

2

:0はXサーバーを参照するソケットです。プログラムは、このソケットを使用してXサーバと通信します(たとえば、ウィンドウを描画するなど)。このソケットからの読み取りによって、何らかの形でサーバーがアクティブになりました。このコマンドを実行する前に、Xサーバーがすでに実行されている必要があります。

+0

私はXサーバと遊んでいました。だからあなたはおそらくそれが走っているのは正しいでしょう。 –

3

これはOSX 10.5の動作のようです。

launchdはソケット '/ tmp/launch-xxxxxx /:0'をリッスンします。 DISPLAY変数は、Xアプリケーションにそのソケットへの書き込みを指示するように設定されています。 Xアプリケーションがソケットを開くと、launchdは自動的に 'X11.app'を起動し、アプリケーションにディスプレイを提供します。

ソケットを開けてX11.appを起動します。私は、その動作の他のインスタンスがデフォルトで設定されているとは思わない。

関連する問題