If len is positive, val may contain embedded nuls and need
not be nul-terminated. It is the caller's responsibility to
ensure that val has at least len addressable bytes.
If len is negative, val must be nul-terminated and len
is considered to request the entire string length.
If pos is -1, bytes are inserted at the end of the string.
Inserts len bytes of val into string at pos.
If len is positive, val may contain embedded nuls and need not be nul-terminated. It is the caller's responsibility to ensure that val has at least len addressable bytes.
If len is negative, val must be nul-terminated and len is considered to request the entire string length.
If pos is -1, bytes are inserted at the end of the string.