我有一个看起来像这样的结构:
struct result {
int personId;
int questionId;
int choice;
};
我正试图建立父母和孩子之间的双向交流
我有一个数组:
struct result finalResults[3][20];
我正在通过管道逐行发送这个2D数组(来自子部分):
write(p2[1], &finalResults[0], sizeof(finalResults[0]));
write(p2[1], &finalResults[1], sizeof(finalResults[1]));
write(p2[1], &finalResults[2], sizeof(finalResults[2]));
然后我试图在父方面阅读:
while ((n = read(p2[0], resultBuffer, sizeof(resultBuffer)) > 0)) {
int i = 0;
for (i = 0; i < 20; ++i) {
if (resultBuffer[i].choice != 0)
printf("Result for question id: %d, person id: %d, choice: %d\n", resultBuffer[i].questionId, resultBuffer[i].personId, resultBuffer[i].choice);
}
resultBuffer是:
struct result resultBuffer[1024];
一切顺利,但是父母只读取2D数组的第一行而不是其余部分
可能是什么问题呢?
谢谢。