read () devuelve caracteres adicionales del archivo

Estoy tratando de leer el texto del archivo para imprimir ... Mientras intento si le doy el tamaño del búfer de caracteres, me devuelve algún carácter adicional ...

#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(){

    int fd = open("text.txt",O_RDONLY);

    char cbuffer[100];
    int a =0;
    if(fd>0){
        puts("File open");
        ssize_t len = read(fd,cbuffer,sizeof(cbuffer));
        a =printf("%s",&cbuffer);
        printf("\n return data count  %d",a);
    }

    return 0;

}

Si en lugar de

ssize_t len = read(fd,cbuffer,sizeof(cbuffer));

ssize_t len = read(fd,cbuffer,10);

devuelve 10 caracteres exactamente. ¿Puede alguien explicar por qué ocurre esto

Respuestas a la pregunta(2)

Su respuesta a la pregunta