Es verbirgt die Zeichenfolge effektiv vor dem Drucken oder Kopieren mit Standardfunktionen - was auch immer die Absicht sein mag.
Tofro
In Bluez werden diese Stilarrays wie folgt verwendet: struct sockaddr_un addr; memcpy (addr.sun_path, BLUEZ_SCO_SK_PATH, sizeof (BLUEZ_SCO_SK_PATH)); Wie würde der Socket-Pfad aussehen, / dev / socket /? Bluez_sco_socket? oder kann es nicht mit dem Befehl "ls" gesehen werden?
user1923105
Antworten:
116
In Ihrem speziellen Fall wird dieses Array als Pfadname für einen PF_LOCALSocket verwendet. siehe hier . Und führende NUL wird verwendet, um darauf hinzuweisen, dass die Adresse abstrakt ist. Von Mann 7 Unix :
Eine abstrakte Socket-Adresse zeichnet sich dadurch aus, dass sun_path [0] ein Null-Byte ('\ 0') ist.
Und dies ist der einzige Grund, warum das erste Element ist \0.
Vielleicht möchten Sie dies auch für die Nachwelt zitieren: "Der abstrakte Namespace wurde mit Linux 2.2 eingeführt und sollte nicht in tragbaren Programmen verwendet werden."
Antworten:
In Ihrem speziellen Fall wird dieses Array als Pfadname für einen
PF_LOCAL
Socket verwendet. siehe hier . Und führende NUL wird verwendet, um darauf hinzuweisen, dass die Adresse abstrakt ist. Von Mann 7 Unix :Und dies ist der einzige Grund, warum das erste Element ist
\0
.quelle