If n is smaller than the string length (as in: distance to first null byte) then you’re bound to have garbage in your return destination
Wha? N is just maximum length of string to copy. Data after dst+n is unchanged.
In retrospect null-terminated strings were a mistake, but so were many other things, at some point you just have to accept that there’s hysterical raisins everywhere.
Sure but that means the part before that is garbage because you have a null terminated string without terminator.
Or at least that’s how I see it. If your intention isn’t to start and end with a null-terminated string you should be using memcpy. Let us not talk about situations where CHAR_BIT!=8 that’s not POSIX anyway.
Even better, just avoid doing string manipulation in C.
Wha? N is just maximum length of string to copy. Data after dst+n is unchanged.
All hail length-prefixed strings!
Sure but that means the part before that is garbage because you have a null terminated string without terminator.
Or at least that’s how I see it. If your intention isn’t to start and end with a null-terminated string you should be using memcpy. Let us not talk about situations where
CHAR_BIT != 8
that’s not POSIX anyway.Even better, just avoid doing string manipulation in C.
Yeah, let’s not talk about 20-bit one’s complement ints.