Sur mon système de fichiers Linux, un lien symbolique pointe vers 127.0.1.1:+xxxxx
.
Pourquoi le signe plus? Pourrait-il y avoir aussi un moins? Pourquoi pas juste 127.0.1.1:xxxxx
?
linux
networking
filesystems
symbolic-link
ip-address
ma méthode
la source
la source
Réponses:
Les liens symboliques qui ne pointent pas vers un fichier n'ont aucune signification générique. Dans ce cas, il peut s’agir de l’ID de processus, d’un port avec un protocole particulier énoncé ou d’un autre identifiant. Tout dépend de quel programme l'a fait.
Le logiciel qui crée ces liens tire simplement parti des faits suivants: 1) la cible d'un lien symbolique peut être inexistante, voire même absurde; 2) la création d'un lien symbolique est une opération entièrement atomique à un seul appel système (comme la lecture de sa cible), contrairement à la création d'un fichier normal qui prend au moins 3 appels système distincts.
Ainsi, la création de liens symboliques peut être utilisée à mauvais escient comme moyen de verrouillage (en assurant une instance unique d'un programme) même lorsque d'autres mécanismes peuvent ne pas être fiables. Le programme n'a pas besoin du lien symbolique pour être résolu en un fichier réel: il se soucie seulement de savoir si la création du lien a réussi ou si elle échoue car elle existe déjà.
la source
fopen
,fwrite
etfclose
?open
(ou peut-êtrecreat
dans un ancien logiciel)write
, etclose
non les versions f * fournies par stdio. Mais, oui, vous devez au moins faireopen
etwrite
créer le fichier et y insérer quelque chose de significatif. Maintenant, si vous voulez que du code "essaye de le créer, s'il y parvient, y insère des informations, sinon, vous en lise", le second processus peut simplement l'essayerread
avant que le premier processus ait une chance de le fairewrite
.symlink
évite cela; soit réussir et créer le lien, ou échouer et être sûrreadlink
a l'information pour vous.Pour autant que je sache, le "+" signifie que le numéro après l'adresse IP (le "xxxxx") fait référence à un "ID de processus" (et non un port qui utilise généralement la notation [adresse IP]: [numéro de port]).
Il est possible que cette "notation" (pas sûr que je l'appelle une "notation" puisque je ne connais aucune documentation "officielle") fait référence à autre chose si elle est utilisée par une application spécifique - mais là encore, c'est toujours le possibilité non seulement avec des liens symboliques. Les seuls cas que je connaisse (et que je pouvais trouver avec une recherche qui ne soit pas trop longue), le "+ XXXX" faisait toujours référence à l'ID de processus.
la source
/proc
ou/dev
. Pouvez-vous expliquer à quoi sert ce lien symbolique?