web-dev-qa-db-ja.com

'127.0.1.1:+xxxxx'を指しているシンボリックリンクで、プラス文字は何ですか?

私のLinuxファイルシステムでは、シンボリックリンクは127.0.1.1:+xxxxxを指しています。

なぜプラス記号?マイナスもあるでしょうか。どうして127.0.1.1:xxxxxだけじゃないの?

52
myMethod

ファイルを指していないシンボリックリンクは、一般的な意味をまったく持ちません。この場合、がプロセスID、または特別なプロトコルが記述されたポート、または別の識別子になります。それはすべてどのプログラムがそれを作ったかにかかっています。

これらのリンクを作成するソフトウェアは、単に以下の事実を利用しています。1)シンボリックリンクのターゲットが存在しないか、あるいはまったく意味をなさないかもしれない。 2)シンボリックリンクの作成は、少なくとも3つの別々のシステムコールを必要とする通常のファイルの作成とは異なり、(そのターゲットを読んでいるように)単一システムコールの完全にアトミックな操作です。

したがって、シンボリックリンクの作成は、他のメカニズムの信頼性が低い場合でも、ロックする方法(プログラムの単一インスタンスを保証する方法)として悪用される可能性があります。プログラムは、実際のファイルに実際に解決するためのシンボリックリンクを必要としません。それはcreatingリンクが成功するかどうか、または既に存在するために失敗するかどうかのみを気にします。

95
grawity

私が知っている限りでは、 "+"はIPの後の番号( "xxxxx")が "プロセスID"を指すことを意味します(通常は[IP-address]:[portnumber]という表記を使用するポートではありません)。

特定のアプリケーションで使用されている場合、この「表記法」(「公式な」文書がわからないため、「表記法」と呼ぶことになるかどうかわかりません)が可能です。シンボリックリンクだけでなく可能性。私が知っている唯一のケース(そしてあまりにも広範囲ではない検索で見つけることができるでしょう)は常に "+ XXXX"がプロセスIDを参照していました。

22
Albin