我有一个应用程序将数据(控制数据、访问信息等)写入父进程的管道一端。在子进程中,我想按原样读取该数据。
父进程在许多位置执行许多 write() 操作。为了将数据读入缓冲区,我们需要指定数据的长度
read(int fd, buffer, len).
我的问题是,父进程每次都会写入可变大小的数据。那么子进程如何知道数据的长度。
我试图读取单个字符并将其添加到 buff 中,
char ch;
int n = 0;
while(n >= 0)
{
n = read(int fd, ch, 1);
*buff = ch; buff++;
}
但它似乎没有办法做到这一点
请告诉我如何在子进程中读取可变大小的数据?