char *strerror_r(int errnum, char *buf, size_t buflen);
What are these buf
/buflen
parameters for?
Empty buffer works like a charm:
char* buf = nullptr;
fprintf(stderr, strerror_r(errno, buf, 0));
Also this buffer looks like unused:
char buf[1024];
fprintf(stderr, "%s\n", strerror_r(errno, buf, sizeof buf)); // Correct message here
fprintf(stderr, "%s\n", buf); // Empty