Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di mr.and
    Registrato dal
    Dec 2008
    Messaggi
    51

    [C]File locking sotto windows

    Salve,
    qualcuno sa dirmi se è possibile realizzare un file locking sotto windows?
    Io so che sotto linux il meccanismo è piuttosto semplice ma non riesco a trovare niente per quanto riguarda l'ambiente windows.
    Se ho il file pippo.txt, come gestisco l'accesso in scrittura e in lettura da parte di più thread a questo file?

    Vi ringrazio in anticipo!

  2. #2
    Premesso che già in fase di apertura del file è possibile specificare alcune possibilità di accesso, per sincronizzare diversi thread (dello stesso processo) è possibile usare uno dei tanti Synchronization Objects di Windows, come critical section, event, semaphore, ecc.

    Se invece l'intento è quello di sincronizzare diversi processi, allora si parla di Interprocess Communication e anche qui le possibilità sono diverse: http://msdn.microsoft.com/en-us/libr...74(VS.85).aspx.

    HTH,

  3. #3
    Utente di HTML.it L'avatar di mr.and
    Registrato dal
    Dec 2008
    Messaggi
    51
    quindi bastano i flag usati ad esempio nella CreateFile per evitare il problema di letture e/o scritture contemporanee di uno stesso file da parte di più thread appartenenti allo stesso processo??
    Ottimo, mi sfuggiva questa cosa, grazie mille!!!

  4. #4
    quindi bastano i flag usati ad esempio nella CreateFile per evitare il problema di letture e/o scritture contemporanee di uno stesso file da parte di più thread appartenenti allo stesso processo??
    Per scrupolo ho voluto provare e ti confermo che è così. Ovviamente ciascun thread deve avere il proprio handle al file in questione. Se il file è già aperto da un thread, senza permessi di condivisione, un altro thread non riesce ad aprire il file e GetLastError() ritorna ERROR_SHARING_VIOLATION.

    Detto questo, valuta comunque l'alternativa di utilizzare un oggetto di sincronizzazione, ad esempio una critical section, perchè a mio parere avresti una soluzione più pulita e più facilmente gestibile/controllabile. Certo, dipende dal contesto, anche usare i flag di condivisione ha i suoi vantaggi.

  5. #5
    Utente di HTML.it L'avatar di mr.and
    Registrato dal
    Dec 2008
    Messaggi
    51
    Ti ringrazio ancora, ma credo che la prima soluzione mi vada bene perchè il mio problema è quello di proteggere l'accesso in lettura e scrittura (classico più lettori si,ma un solo scrittore per volta) contemporanea su diversi file di un file system, quindi l'utilizzo dei flag nell'apertura dei file svolge il suo conpito senza necessitare dell'aggiunta di altro.
    Ho fatto delle prove e va a pennello!
    Ancora grazie mille!!

    Ciao!

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.