Ho uno scenario in cui ho creato pipe per la comunicazione tra due figli e padre. Genitore scrive (usando la funzione di scrittura) i dati nella pipe e chiude il rispettivo descrittore di file. Il problema è quando voglio scrivere di nuovo i dati nella pipe, la funzione write restituisce il codice di errore -1. Penso che sia perché la fine della scrittura è stata chiusa nella precedente iterazione. Quindi come aprire il descrittore di file corrispondente dopo che è stato chiuso una volta.Come riaprire un descrittore di file chiuso
Ho provato a utilizzare la funzione open() che richiede il percorso di alcuni file come argomento. Ma non sto usando alcun file nella mia applicazione. Ho dei descrittori di file semplici (int arr [2]).
E 'possibile raggiungere lo scenario sopra con i tubi ????
se noi non chiudere il descrittore di file, esso non invierà EOF al rispettivo flusso. Quindi nel processo figlio aspetterà continuamente per l'input. Ma, voglio scrivere un numero limitato di volte nello stream e leggere contemporaneamente all'altra estremità della pipe – chaitu
@chaitu: È vero che se non chiudi la fine della scrittura, la fine della lettura non mostrerà la fine del file . Ciò significa che è necessario utilizzare un elemento diverso dalla fine del file per indicare la fine del messaggio, se si desidera inviare più messaggi al figlio (in genere, si utilizzerà un messaggio a lunghezza fissa in modo che il bambino sappia per quanto tempo è). – caf