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?
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?
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à.
fopen, fwriteet fclose?
open(ou peut-être creatdans un ancien logiciel) write, et closenon les versions f * fournies par stdio. Mais, oui, vous devez au moins faire openet writecré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'essayer readavant que le premier processus ait une chance de le faire write. symlinkévite cela; soit réussir et créer le lien, ou échouer et être sûr readlinka 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.
/procou /dev. Pouvez-vous expliquer à quoi sert ce lien symbolique?