Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    261

    Close(Pipe[0]) in C

    Mi domandavo questo ....:nel momento in cui un processo attiva la funzione close(Pipe[0]) impedisce a se stesso di leggere sulla pipe e quindi puo solo scrivere....giusto?
    ma questo è relativo al processo che attiva il close() oppure alla Pipe in se ,cioè una volata chiusa la Pipe in lettura è solo quel processo che l'ha chiusa a non poter più leggere o scrivere oppure tutti i processi che cercano di usare la Pipe?........

  2. #2
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    è relativo al processo che la usa.
    Infatti è classico il codice nel caso di uno che legge e uno che scrive del tipo:

    codice:
    int piped[2];
    pipe(piped);
    if(fork()){
         close(piped[0]);
         <scrive dati>
    }
    else{
         close(piped[1]);
         <legge dati>
    }
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Ovviamente solo il processo che l'ha chiusa.
    Essendo la PIPE un canale monodirezionale avrai un processo che scrive nella pipe e uno che legge.
    Di conseguenza, il primo processo chiuderà il canale in lettura e l'altro chiuderà quello in scrittura.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.