Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] fread() e fwrite() eseguite allo stesso tempo da più processi su uno stesso file

    Salve ragazzi,
    volevo sapere cosa accade se 2 processi cercano di scrivere contemporaneamente su un file aperto in write con una fwrite() . E se invece cercano di leggere contemporaneamente il contenuto del file aperto in lettura con una fread() ? E se invece un processo cerca di scrivere su un file aperto in lettura/scrittura mentre l'altro cerca di leggerlo (o viceversa)? Per farla breve volevo sapere se queste funzioni gestiscono autonomamente la concorrenza.
    Grazie e un saluto a tutti!

    F.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Che io sappia quelle funzioni sono atomiche al loro interno, quindi garantiscono la corretta lettura e/o scrittura del buffer passato. Ma due fwrite concorrenti, con file pointer diversi ma riferenti allo stesso file fisico, non lo sono.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Credo che dipenda da come è implementata la gestione dei file dal sistema operativo sottostante. In ogni caso per evitare problemi in caso di possibile scrittura contemporanea da parte di più processi bisogna bloccare il file.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.