Als ik de BlueZ-broncode lees, zie ik vaak char
-arrays gedefinieerd als dit:
// bluez/android/sco-msg.h
static const char BLUEZ_SCO_SK_PATH[] = "\0bluez_sco_socket";
Wat heb je eraan om het eerste element te definiëren als \0
?
Antwoord 1, autoriteit 100%
In jouw specifieke geval wordt deze array gebruikt als padnaam voor een PF_LOCAL
socket; zie hier. En de leidende NUL wordt gebruikt om aan te geven dat het adres een abstract adres is. Van man 7 unix:
een abstract socketadres onderscheidt zich door het feit dat:
sun_path[0] is een null-byte (‘\0’).
En dit is de enige reden waarom het eerste element \0
is.