Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicitÓ e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Creare un'unica istanza di un processo
Forum - C/C++ - Creare un'unica istanza di un processo

Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 16:24
Venerdý, 26/03/2010
Salve a tutti. Come si fÓ a fare in modo che di un processo ne esista un unica istanza?


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:21
Venerdý, 26/03/2010
Utilizza un mutex con nome.

Crea il mutex con la

CreateMutex

e controlla se esiste giÓ o no.


Ricorda che nessuno Ŕ obbligato a risponderti e che nessuno Ŕ perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitÓ) chiamava il gioco del Lotto Tassa sulla stupiditÓ.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 21:18
Venerdý, 26/03/2010
Senti, ho fatto prima come mi hai detto tu, ossia
Codice sorgente - presumibilmente C#

  1. HANDLE mutex = CreateMutex(
  2.                 NULL,                        
  3.                 TRUE,                       // Anche con false non funziona            
  4. TEXT("rgklServer"));
  5.         if (mutex != NULL) {
  6.                 doServer();
  7.         }



Per˛ non ha funzionanto, invece in quest'altra maniera si
Codice sorgente - presumibilmente C/C++

  1. HANDLE mutex = OpenMutex(MUTEX_ALL_ACCESS, TRUE, TEXT("rgklServer"));
  2.         if (mutex == NULL) {
  3.                 CreateMutex(NULL, TRUE, TEXT("rgklServer"));
  4.                 doServer();
  5.         }




Ma logicamente Ŕ meglio come hai detto tu, ossia prima crei e poi controlli in modo da avere la certezza assoluta: ho sbagliato forse qualcosa nello scrivere la tua versione?

Ultima modifica effettuata da robrock80 il 26/03/2010 alle 21:18


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:39
Sabato, 27/03/2010
La documentazione ... questa sconosciuta ... perchŔ non la studi approfonditamente?

CreateMutex
http://msdn.microsoft.com/en-us/library/ms682411(VS.85).aspx

e quindi

Codice sorgente - presumibilmente C/C++

  1. HANDLE mutex = CreateMutex(NULL, TRUE, TEXT("rgklServer"));
  2.  
  3. if(GetLastError() == ERROR_ALREADY_EXISTS)
  4.     printf("Server gia' in esecuzione");



Ricorda che nessuno Ŕ obbligato a risponderti e che nessuno Ŕ perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitÓ) chiamava il gioco del Lotto Tassa sulla stupiditÓ.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 11:28
Sabato, 27/03/2010
Ok, funziona, ma stÓvolta ci avevo visto nella documentazione: avevo visto anche quello che mi avevi detto tu, ma probabilmente h

http://msdn.microsoft.com/en-us/library/ms686931(VS.85).aspx

Grazie di nuovo

Ultima modifica effettuata da robrock80 il 27/03/2010 alle 11:30


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:29
Sabato, 27/03/2010
Testo quotato

Postato originariamente da robrock80:

ci avevo visto



L'avevo capito che ci "avevi visto" ... non a caso ti ho detto "studi approfonditamente" ... :)


Ricorda che nessuno Ŕ obbligato a risponderti e che nessuno Ŕ perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilitÓ) chiamava il gioco del Lotto Tassa sulla stupiditÓ.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 11:31
Sabato, 27/03/2010
Cavoli, non ti sfugge niente, 6 proprio forte!:k:


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote