Pregunta ¿Por qué definir \ 0 como el primer elemento de una matriz de caracteres en C?


Cuando leo BlueZ código fuente, a menudo veo char matrices definidas de esta manera:

// bluez/android/sco-msg.h
static const char BLUEZ_SCO_SK_PATH[] = "\0bluez_sco_socket";

¿De qué sirve definir el primer elemento como \0?


75
2017-07-11 10:11


origen


Respuestas:


En su caso particular, esta matriz se utiliza como ruta de acceso para un PF_LOCAL enchufe; ver aquí. Y NUL principal se usa para señalar que la dirección es abstracta. De hombre 7 unix:

una dirección de socket abstracta se distingue por el hecho de que   sun_path [0] es un byte nulo ('\ 0').

Y esta es la única razón por la cual el primer elemento es \0.


116
2017-07-11 10:32