ssize_t read(int fd, void *buf, size_t count);
返回值是带符号的 ssize_t,代表此次 read 实际读取的字节数。 第三个参数是不带符号的 size_t,代表此次希望读取的字节数。
显然 size_t 的最大值是 ssize_t 的两倍,可以假设 size_t 的最大值是 255,ssize_t 的最大值是 127,如果在 read 函数的第三个参数中填 200,是不是代表 read 最多只能读取 127 字节数据?如果是的话,感觉 linux 这么设计有点不合理啊,感觉和所见即所得原则有点违背。