我想要做的是,我有一個父母和子女的過程。我嘗試讀取文件並將所有內容傳遞給孩子。輸入文件中有記錄。我必須一次讀一遍,然後傳給孩子。但不管我做什麼。孩子只讀第一個記錄,而不是所有其他記錄。我測試了我的方法從輸入文件獲取所有記錄,但不能將它們全部寫入子項。請任何想法。如何將多條記錄從父母的叉子傳遞給孩子
struct product_record {
int idnumber; // Unique identification
char name[PRODUCTSIZE]; // String description
double price; // Unit cost
};
int pid, mypipe[2], status;
int main(int argc, char **argv)
{
int result;
result = pipe(mypipe);//create pipes
if (result < 0) {
perror("pipe creation error");//failure in creating a pipe
exit (1);
}//if
if ((pid = fork()) == 0)
{
read(mypipe[0], &product, sizeof(product));
exit(0);
}
else if (pid == -1)
{
cout << "Fork failed" << endl;
exit(1);
}
else
{//parent
parentReadsFromTheFile(argv);//argv inputfile name
wait(&status);
}
return 0;//Return to the OS.
}//main
void parentReadsFromTheFile(char **args)
{
while (getline(inputFile, line)) //read a line till EOF
{
//put read record into product
write(mypipe[1], &product, sizeof(product));//Write to pipe
}
}
正確地調整你的代碼,就不做評論了明顯的。 – chqrlie
發佈'product'的定義。 – chqrlie
我編輯和解釋得更好。謝謝。 – user2934615