Les systèmes d'exploitation limitent la longueur du chemin d'un socket de domaine Unix. Comment puis-je vérifier si un chemin particulier est dans cette limite?
Ou, pour le dire autrement, comment puis-je vérifier la longueur maximale autorisée d'un chemin d'un socket de domaine Unix, sur un système Linux ou Mac OS X?
Mon cas d'utilisation est ici pour le multiplexage SSH: si le ControlPath est trop long, le multiplexage SSH ne fonctionnera pas car il crée des sockets de domaine Unix. Je veux pouvoir vérifier un chemin de contrôle valide sans avoir à démarrer réellement une session ssh et rechercher le message d'erreur.
Sous Mac OS X, selon la
unix
page de manuel:Voici un programme qui compile à la fois sur Linux et OS X qui affichera la longueur maximale du chemin d'un socket de domaine Unix.
Sous Linux, il émet
108
, et OS X, il sort104
.la source