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

myM*_*hod 52 networking linux filesystems ip-address symbolic-link

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

为什么是加号?也会有减分吗?为什么不只是127.0.1.1:xxxxx

use*_*686 93

不指向文件的符号链接根本没有通用意义。在这种情况下,它可能是进程 ID,或带有某种特殊协议的端口,或其他标识符。这一切都取决于是什么程序制作的。

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

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

  • @NicHartley:系统调用是 `open`(或者可能是旧软件中的 `creat`)、`write` 和 `close`,而不是 stdio 提供的 f* 版本。但是,是的,您至少需要执行“打开”和“写入”来创建文件并将有意义的内容放入其中。现在,如果您想要一些代码“尝试创建它,如果成功,则将一些信息放入其中,否则,从中读取一些信息”,第二个进程可以在第一个进程有机会之前尝试它的 `read`写`。`symlink` 避免了这种情况;要么成功并创建链接,要么失败并确保 `readlink` 为您提供信息。 (11认同)
  • “* 不像创建一个至少需要 3 个单独系统调用的常规文件。*”——你能澄清一下吗?你的意思是`fopen`、`fwrite`和`fclose`吗? (5认同)

Alb*_*bin 22

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

如果特定应用程序使用此“符号”(不确定我是否将其称为“符号”,因为我不知道任何“官方”文档)有可能指代其他东西 - 但话又说回来,这始终是不仅可以使用符号链接。我所知道的唯一情况(并且可以通过不太广泛的搜索找到)“+ XXXX”总是指进程 ID。

  • 这是我第一次看到这个符号,所以我很惊讶听到你说这是一个通用的符号。您在哪里看到它曾经表示进程 ID? (4认同)
  • 听起来你在谈论一个特殊目录中的符号链接,比如 `/proc` 或 `/dev`。你能解释一下这个符号链接的用途吗? (2认同)