Originariamente inviato da YuYevon
Non capisco il termine "tramite"... una pipe non serve a "far convidivere un segmento di memoria tra 2 processi", ma semplicemente a metterli in comunicazione... è un meccanismo di IPC, non c'entra con la memoria condivisa.
Se questo è quello che devi fare, non c'è bisogno di ricorrere alla memoria condivisa. Il processo padre deve aprire entrambe le estremità della pipe (lettura e scrittura) richiamando appunto pipe(), a quel punto crea il processo figlio che eredita entrambi i descrittori associati alle due estremità della pipe. Fatto questo, poiché il processo figlio deve leggerci, chiude l'estremita in scrittura, legge i dati (in questo caso i numeri della successione di Fibonacci) e li stampa. Il processo padre, invece, chiude l'estremità della pipe in lettura (perché lui invece deve scriverci) e appunto scrive nella pipe i numeri della successione di Fibonacci, che saranno letti e stampati dal processo figlio.
il mio consiglio e di correggere questi warnings prima di procedere... si tratta principalmente di rivedere come hai dichiarato le variabili che passi alle funzioni (tanto per dirne una, "buffer" nel tuo caso deve essere un array di 30 elementi se vuoi passarlo alla write... o comunque in generale un puntatore).
Se hai problemi, chiedi pure