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++ - Lanciare .exe
Forum - C/C++ - Lanciare .exe

Avatar
ddemarch (Normal User)
Rookie


Messaggi: 29
Iscritto: 17/08/2009

Segnala al moderatore
Postato alle 17:25
Giovedì, 17/09/2009
Salve,
vorrei creare un programma che lancia file eseguibili in sequenza. Però ho l'esigenza che si aspetti il termine dell'exe eseguito prima di lanciare il successivo. Questi exe sono sempre programmi scritti in c e hanno una brevissima durata ma devo essere sicuro che siano terminati prima di lanciare il successivo perchè vanno a lavorare su dei file comuni..

Qualcuno ha qualche idea?? :hail:

Grazie!!

Ultima modifica effettuata da ddemarch il 17/09/2009 alle 17:27
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:33
Giovedì, 17/09/2009
Se parli di Windows, puoi usare la CreateProcess e la WaitForSingleObject

PM Quote
Avatar
ddemarch (Normal User)
Rookie


Messaggi: 29
Iscritto: 17/08/2009

Segnala al moderatore
Postato alle 17:37
Giovedì, 17/09/2009
Grazie! domani proverò.. Almomento si lavoro su windows ma se volessi eseguirlo anche su linux è possibile?

Ultima modifica effettuata da ddemarch il 17/09/2009 alle 17:38
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:41
Giovedì, 17/09/2009
Quelle API non lavorano su Linux ... dovrai usare fork oppure exec ...

PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 18:11
Domenica, 20/09/2009
devi usare fork e exec.. oltre che wait o waitpid (anche se in realtà la sicnronizzazione si potrebbe fare anche con signal(SIGCHLD, handler) e una pause() o suspend(sigmask).. in poche parole:

su linux è ancora più semplice.. se cerchi tra gli esempi in C (su questo sito) c'è un programma che si chiama respawn che con una piccolissima modifica fa proprio al caso tuo.

in sostanza fai un programma che crea un figlio con una fork e da questa fork fai una execlp o execvp che esegue il tuo programma. il padre fa una waitpid che aspetta la terminazione del figlio, quando il figlio termina ripete la fork e così via..

Ultima modifica effettuata da eddiewrc il 20/09/2009 alle 18:18
PM Quote