Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Creare una e una sola istanza di un programma
Forum - C/C++ - Creare una e una sola istanza di un programma

Avatar
### (Normal User)
Rookie


Messaggi: 44
Iscritto: 07/09/2006

Segnala al moderatore
Postato alle 18:24
Martedė, 26/09/2006

Dovrei fare un programma tale che non possano essere eseguite pių sue istanze contemporaneamente, in particolare il programma lavora con dei file e avviarne pių istanze potrebbe provocare "interferenze".

Che metodo mi consigliate di usare?:)

Grazie a tutti!:k:

PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 18:31
Martedė, 26/09/2006
usa i semafori qnd scrivi sui file e anzichč usare + instanze del prg usa i thread ;)

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 23:32
Mercoledė, 27/09/2006
Se sei in Unix mi pare che hai la funzione flock per gestire pių files senza interferenze.. ma non ne sono sicuro.


Il mio blog: https://piero.dev
PM Quote
Avatar
### (Normal User)
Rookie


Messaggi: 44
Iscritto: 07/09/2006

Segnala al moderatore
Postato alle 17:56
Domenica, 01/10/2006

Grazie a tutti, alla fine ho trovato + comodo l'utilizzo mutex (sono su windows).

PM Quote
Avatar
### (Normal User)
Rookie


Messaggi: 44
Iscritto: 07/09/2006

Segnala al moderatore
Postato alle 17:58
Domenica, 01/10/2006
Probabilmente potrebbe tornare utile a qualcun altro in futuro ;)

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. int WINAPI WinMain (HINSTANCE hThisInstance,
  5.                     HINSTANCE hPrevInstance,
  6.                     LPSTR lpszArgument,
  7.                     int nFunsterStil)
  8.  
  9. {
  10.     HANDLE CurrMutex=CreateMutexA(0,1,"mymutex");
  11.  
  12.     if( CurrMutex==0 || WaitForSingleObject(CurrMutex,100)!=0)
  13.     {
  14.         CloseHandle(CurrMutex);
  15.         return 0;
  16.     }
  17.    
  18.     Sleep(5000);
  19.        
  20.     ReleaseMutex(CurrMutex);
  21.    
  22.    
  23.     return 0;
  24. }


PM Quote
Avatar
Rand (Ex-Member)
Pro


Messaggi: 163
Iscritto: 17/05/2005

Segnala al moderatore
Postato alle 23:39
Venerdė, 06/10/2006
la metodologia mutex (mutua esclusione) serve x implementare i semafori :D

alla fine l'hai svolto come avevo proposto io....
:k:

PM Quote