Bir yapıyı birden çok alt işlemlerden bir ana bilgisayara aktarmaya çalışıyorum.Boru yapıları hatası
yapıları böyle yapılandırılmıştır. Boru ile okuduğumda/yazdığımda ve yapı alanlarını yazdırmaya çalıştığımda, değişkenimin yapıdan bir şey talep ettiğini ancak bir yapı olmadığını söylüyor. İşte
close(fd[0]);
fclose(inputFile);
Node* pass = wordList->head;
write(fd[1], pass, sizeof(Node));
Ana kod edilir:
close(fd[1]);
Node* taken;
read(fd[0], taken, sizeof(Node));
printf("%s, count %d\n", taken->str, taken->num);
yardımcı ve teşekkür edin
wordc-mp-main.c:123:44: error: request for member ‘num’ in something not a structure or union
printf("%s, count %d\n", taken->str, taken->num);
^
İşte Çocuk süreçlerinden boru kodudur.
güncelleme: ve düğümlerden * kaldırıldı biri
Node taken = (Node) malloc(sizeof(Node));
hiçbir bölme hatalarına olsun yapılmış, ancak benim yapısı düzgün borudan geçemedi.
Ve typedef's 'yoluyla indirection gizlemek yok bu yüzden. – EOF
2 işaretçi içeren bir yapının süreçler arasında gönderilmek için iyi bir aday olmadığını unutmayın. Gönderme işlemindeki işaretçi, genel olarak, kabul sürecinde geçersizdir; İşaretçilerin işaret ettiği verileri geçmediniz. Bu, derleme sorunlarının ötesine geçtiğinizde muhtemelen çökmelere neden olacaktır. –
@ EOF'lar hakkında ayrıntılı bir tartışma için [typedef 'işaretçileri için iyi bir fikir mi?] (Http://stackoverflow.com/questions/750178/is-it-a-good-idea-to-typedef-pointers) puan. –