Const-safety preserves read-only qualification across an interface that accepts or returns object pointers. For example, numberline declares its input as char const, while fgetline receives writable storage. section 14.1
Read-only input versus writable input
The declaration size_t* numberline(size_t size, char const lbuf[restrict size], size_t* restrict np, int base) communicates that lbuf is read-only to the function. By contrast, fgetline receives char s[...] and writes through it before using strchr to locate and remove a newline. The library interface's lack of const-safeness must therefore be assessed against the actual mutability of the argument.
