在指向“ 127.0.1.1:+xxxxx”的符号链接中,加号是做什么用的?


52

在我的Linux文件系统上,符号链接指向127.0.1.1:+xxxxx

为什么加号?还会有负号吗?为什么不只是127.0.1.1:xxxxx呢?


该符号链接位于/ proc下吗?
约书亚

4
@Joshua:在〜/ .mozilla /或类似版本下的可能性更大。Firefox / Thunderbird和iirc Steam使用此类符号链接进行锁定。
grawity

2
xxxxx是数字还是字符xxxxx?
Mawg '18 -10-5

2
可能无关,但仅供参考。在某些IRC客户端中,端口之前的加号表示远程服务器使用SSL / TLS。
eKKiM '18 -10-5

Answers:


94

没有指向文件的符号链接根本没有通用含义。在这种情况下,它可能是进程ID,或者是带有某些特殊协议的端口,或者是另一个标识符。这完全取决于制作什么程序。

创建这些链接的软件仅利用以下事实:1)符号链接的目标可能不存在,甚至完全没有意义;2)创建一个符号链接是一个单系统调用,完全是原子操作(就像正在读取其目标一样),与创建一个常规文件至少需要3个单独的系统调用不同。

因此,即使其他机制可能不可靠,也可以滥用将符号链接创建作为一种锁定方式(确保程序的单个实例)。该程序不需要符号链接即可实际解析为实际文件:它只关心创建链接是否成功,还是由于链接已经存在而失败。


5
“ *与创建需要至少3个单独的系统调用的常规文件不同。*”-您能否澄清?你的意思是fopenfwritefclose
Nic Hartley

11
@NicHartley:系统调用是open(或可能creat在旧软件中)write,和close,而不是stdio提供的f *版本。但是,是的,您至少需要做openwrite创建文件并将有意义的内容放入其中。现在,如果您希望某个代码“尝试创建它,如果成功,则向其中添加一些信息,否则,从中读取一些信息”,那么第二个过程可以read在第一个过程有机会尝试之前进行尝试writesymlink避免这种情况;成功并创建链接,或者失败并确保readlink具有适合您的信息。
Guntram Blohm

“ ...可以以某种方式滥用 ...”这种滥用是“以不打算使用的方式使用”还是“以应该使用的方式使用”?
戴帽子的家伙

22

据我所知,“ +”表示IP后面的数字(“ xxxxx”)是指“进程ID”(不是通常使用[IP-address]:[portnumber]表示法的端口)。

如果“特定”应用程序使用了这种“符号”(不确定我不称其为“符号”,因为我不知道任何“官方”文档),则可能引用了其他内容-但是再说一遍,可能性不仅与符号链接有关。我知道的唯一情况(并且可以通过不太广泛的搜索找到)“ + XXXX”始终引用进程ID。


1
我刚刚检查了一下。就我而言,确实如此。
myMethod

1
您可以链接到某处这种格式的文档吗?
David Z

1
不知道,我只是亲身体验过。
阿尔宾(Albin)

2
听起来您在谈论特殊目录(例如/proc或)中的符号链接/dev。您能解释一下这个符号链接的作用吗?
Barmar

4
这是我第一次看到这种表示法,因此让您惊讶的是您说这是一种通用表示法。您在哪里看到过它用来表示进程ID?
Barmar
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.