Aug 1, 2023 14:23:22 Yuan Tan tanyuan@tinylab.org:
Would this be fine?
static int test_pipe(void) { const char *const msg = "hello, nolibc"; int pipefd[2]; char buf[32]; ssize_t len;
if (pipe(pipefd) == -1) return 1;
write(pipefd[1], msg, strlen(msg)); close(pipefd[1]); len = read(pipefd[0], buf, sizeof(buf)); close(pipefd[0]);
if (len != strlen(msg)) return 1;
return !!memcmp(buf, msg, len); }
Looks good!
The return value of write() could also be validated but given we validate the return value from read() it shouldn't make a difference.
(Also the manual manipulation of "buf" is gone that necessitated the check in v1 of the series)
I am sorry that I didn't catch your last sentence.
Did you mean this piece of code does not need any further modifications right?
Yes, for me this is great! Sorry for being unclear.