On my Linux filesystem, a symlink points to

Why the plus sign? Could there also be a minus? Why not just

  • Is this symbolic link under /proc?
    – Joshua
    Oct 3, 2018 at 22:15
  • 4
    @Joshua: More likely under ~/.mozilla/ or similar. Firefox/Thunderbird, and iirc Steam, use such symlinks for locking.
    – user1686
    Oct 4, 2018 at 4:05
  • 2
    Is xxxxx a number, or the characters xxxxx? Oct 5, 2018 at 9:55
  • 2
    Probably unrelated but just for information. In some IRC clients the plus-sign before the port was there to indicate the remote server uses SSL/TLS.
    – eKKiM
    Oct 5, 2018 at 14:43

2 Answers 2


Symbolic links which don't point to a file have no generic meaning at all. In this case it might be the process ID, or a port with some special protocol spoken over it, or another identifier. It all depends on what program made it.

Software which creates these links simply takes advantage of the facts that 1) a symlink's target may be non-existent or even total nonsense; 2) creating a symlink is a single-syscall completely atomic operation (as is reading its target), unlike creating a regular file which takes at least 3 separate system calls.

Thus symlink creation can be abused as a way of locking (ensuring single instance of a program) even when other mechanisms may be unreliable. The program doesn't need the symlink to actually resolve to a real file: it only cares about whether creating the link succeeds, or whether it fails due to it already existing.

  • 5
    "* unlike creating a regular file which takes at least 3 separate system calls.*" -- Could you clarify? Do you mean fopen, fwrite, and fclose?
    – Nic
    Oct 4, 2018 at 19:21
  • 11
    @NicHartley: The system calls are open (or maybe creat in old software), write, and close, not the f* versions that stdio provides. But, yes, you need to do at least open and write to create the file and put something meaningful into it. Now if you want some code to "try to create it, if successful, put some information into it, else, read some information from it", the second process could just try its read before the first process has a chance to write. symlink avoids that; either succeed and create the link, or fail and be sure readlink has the information for you. Oct 4, 2018 at 19:50
  • "...can be abused as a way..." Is this abuse as in "used in a way it was not intended to be used" or "used in a way it should not be used"? Oct 26, 2018 at 19:23

As far as I know the "+" means that the number after the IP (the "xxxxx") refers to a "process ID" (not a port which usually uses the notation [IP-address]:[portnumber]).

It is possible that this "notation" (not sure I would call it a "notation" since I don't know of any "official" documentation) refers to something else if used by a specific application - but then again, that's always the possibility not only with symlinks. The only cases I know of (and could find with a search that wasn't too extensive) the "+XXXX" always refered to the process ID.

  • 1
    I just checked it. In my case it really does.
    – myMethod
    Oct 3, 2018 at 19:27
  • 1
    Is there documentation of this format somewhere that you could link to?
    – David Z
    Oct 3, 2018 at 20:31
  • 1
    Not sure, I just remember it from hands on experience.
    – Albin
    Oct 3, 2018 at 20:55
  • 2
    It sounds like you're talking about a symlink in a special directory, like /proc or /dev. Can you explain what this symlink is used for?
    – Barmar
    Oct 4, 2018 at 1:48
  • 4
    This is the first time I've seen this notation at all, so I'm surprised to hear you say that it's a general notation. Where have you seen it used to mean a process ID?
    – Barmar
    Oct 4, 2018 at 15:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.