構造体へのポインタの配列にメモリを割り当てています
FreqRecord* record = malloc(MAXRECORDS * sizeof (FreqRecord));
すでにこのレコードを構築しているパイプを介して別のプロセスから読み取る
int length = 0;
if ((length = read(fdr[0][0], record, MAXRECORDS * sizeof (FreqRecord)))<0){
perror("reading from pipe\n");
exit(1);
}
これらのコードはループしており、毎回異なる結果が期待されます。ただし、常に前のパイプが以前に書いたものとまったく同じになります
これが構造体が定義者である方法です
typedef struct {
int freq;
char filename[PATHLENGTH];
} FreqRecord;