Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] Un programma che aspetti che ci sia un file... per proseguire...

    Vorrei poter compilare un programmino secondoprogramma.exe che una volta "startato" aspetti che ci sia un file prodottodelprimoprogramma.txt prima di proseguire con i suoi step.

    E' possibile dirgli... "Se c'e' questo file allora continua altrimenti resta in attesa...?"

    Grazie agli esperti


  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Si può usare un semaforo ( o evento ) per sincronizzare i due processi.
    Il processo B resta in attesa del via libera da A.
    A fa quel che deve fare e quando serve, da via libera a B.
    Il problema è che, se non si fa attenzione, se A s'inchioda prima di dare il via libera a B, B resta fermo al palo e va chiuso brutalmente.

    Due esempi minimali (gestione errori a carico tuo ovviamente).

    Processo A:
    codice:
    #include <iostream>
    #include <windows.h>
    using namespace std;
    
    int main() {
    
    	HANDLE Start = CreateEventW(0,0,0,L"freetom");
    	if (Start == NULL) {
    		cout << "fallito" << endl;
    		return 1;
    	}
    
    	cout << "Attendo 10 secondi" << endl;
    	Sleep(10000);
    
    	cout << "Premi un tasto" << endl;
    	
    	SetEvent(Start);
    	CloseHandle(Start);
    	cin.get();
    }
    Processo B:
    codice:
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    int main(int argc, char* argv[]) {
    
    	HANDLE Start = CreateEvent(0,0,0,L"freetom");
    
    	if (Start == NULL) {
    		cout << "fallito" << endl;
    		return 1;
    	}
    
    	cout << "sono bloccato" << endl;
    
    	WaitForSingleObject(Start,60000);
    
    	cout << "sono sbloccato" << endl;
    	cout << "Premi un tasto" << endl;
    
    	CloseHandle(Start);
    	cin.get();
    
    	return 0;
    }

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Puoi usare le notifiche della shell nn ricordo bene ma qui puoi trovare qualcosa.
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4

    Re: [c++] Un programma che aspetti che ci sia un file... per proseguire...

    Originariamente inviato da freetom
    Vorrei poter compilare un programmino secondoprogramma.exe che una volta "startato" aspetti che ci sia un file prodottodelprimoprogramma.txt prima di proseguire con i suoi step.

    E' possibile dirgli... "Se c'e' questo file allora continua altrimenti resta in attesa...?"
    escludendo il "polling", dipende dal sistema operativo.
    Ad esempio con microsozz puoi usare le funzioni della famiglia:
    FindFirstChangeNotification

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    riprendendo questo argomento...

    Non posso fare in modo di mettere il programma in "ascolto" sulla presenza o meno di un file nella sua stessa directory?

    Es.. Non posso dirgli... "Se c'è file1.txt fai questo altrimenti resta in 'ascolto'..."

    Grazie comunque!


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.