Os sistemas operacionais limitam o comprimento de um caminho de um soquete de domínio Unix. Como posso verificar se um determinado caminho está dentro desse limite?
Ou, em outras palavras, como posso verificar o comprimento máximo permitido de um caminho de um soquete de domínio Unix, em um sistema Linux ou Mac OS X?
Meu caso de uso aqui é para multiplexação SSH: se o ControlPath for muito longo, a multiplexação SSH não funcionará, pois cria soquetes de domínio unix. Quero poder verificar um caminho de controle válido sem precisar iniciar uma sessão ssh e procurar a mensagem de erro.
No Linux, esse comprimento geralmente é definido como 108.
É definido pela
UNIX_PATH_MAX
variável no/usr/include/linux/un.h
arquivo de cabeçalho:Você pode encontrar mais informações aqui:
No Mac OS X, de acordo com a
unix
página do manual:Aqui está um programa que compila no Linux e no OS X que produzirá o comprimento máximo do caminho de um soquete de domínio unix.
No Linux, ele gera
108
, e no OS X, ele gera104
.