I was trying to output a not null terminated char array to a file.
Actual thing is, I am receiving packets and then printing their fields.
Now as these fields are not null terminated, for example, a data segment which has size of 512 but may or may not be completely occupied.
When I write this data to a file I am using simple << overloaded function which does not know any thing about actual data and only looks for termination of data segment.
So, how can I tell the output function to write only this much specific number of bytes?
Instead of using something like this which is expensive to call each time:
enter code here
bytescopied = strncpy(dest, src, maxbytes);
if (bytescopied < 0) { // indicates no bytes copied, parameter error
throw(fit); // error handler stuff here
} else if (bytescopied == maxbytes) {
dest[maxbytes-1] = '\0'; // force null terminator
}
If you want to put exactly
maxbytesbytes, usewritemethodIf you can have less bytes in buffer, how do you know how many of them your buffer contains? If
'\0'marks buffer end, you can write: