@
pravděpodobně označuje soket uložený v abstract namespace
který nepatří k souboru v souborovém systému.
Citace z The Linux Programming Interface od Michaela Kerriska:
57.6 The Linux Abstract Socket Namespace
Takzvaný abstraktní jmenný prostor je funkce specifická pro Linux, která nám umožňuje svázat soket domény UNIX se jménem, aniž by bylo toto jméno vytvořeno v systému souborů. To poskytuje několik potenciálních výhod:
- Nemusíme se obávat možných kolizí s existujícími názvy v systému souborů.
- Po ukončení používání soketu není nutné odpojovat cestu k soketu. Abstraktní název je automaticky odstraněn, když je soket uzavřen.
- Nemusíme vytvářet cestu k systému souborů pro soket. To může být užitečné v prostředí chroot, nebo pokud nemáme přístup k zápisu do systému souborů.
Chcete-li vytvořit abstraktní vazbu, určíme první bajt parametru sun_path pole jako prázdný bajt (\0).[...]
Zobrazuje úvodní null byte
označit takový typ zásuvky může být obtížné, takže to je možná důvod pro úvodní @
podepsat.
Podle man 7 unix
- abstraktní:abstraktní adresa soketu se vyznačuje tím, že sun_path[0] je prázdný bajt (
\0
). Všechny zbývající bajty v sun_path definují "jméno" soketu. (Nulové bajty v názvu nemají žádný zvláštní význam.) Název nemá žádnou souvislost s cestami systému souborů. Adresa soketu v tomto jmenném prostoru je dána zbytkem bajtů v sun_path. Když getockname(2), getpeername(2) a accept(2) vrátí adresu abstraktního soketu, jeho délka je sizeof(struct sockaddr_un) a cesta sun_path obsahuje abstraktní jméno. Abstraktní jmenný prostor soketu je nepřenosné rozšíření Linuxu.
Vypadá to, že jsou „abstraktní“ – takže na souborovém systému není přítomna žádná skutečná cesta