|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
[C] Funzioni fork(), kill(), wait() su windows ???
Salve,
come faccio ad usare queste funzioni su windows? Sto usando mingw come compilatore, conoscete delle librerie che implementano queste funzioni per windows? Ciao e grazie.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2003
Messaggi: 280
|
prova a cercare :
"spawnl" e "execl" nell' msdn . |
|
|
|
|
|
#3 | |
|
Bannato
Iscritto dal: Oct 2004
Città: Roma
Messaggi: 124
|
Re: [C] Funzioni fork(), kill(), wait() su windows ???
Quote:
wait -> Sleep(Ex) oppure WaitForSingleObject (ad esempio con un waitable timer) fork non so a cosa serva P.S.: ovviamente devi includere <windows.h>, e comunque tieni presente che le funzioni standard del C sono implementate anche sotto Windows |
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Oct 2004
Città: Roma
Messaggi: 124
|
con una rapida googlata ho visto il significato di fork; non credo che esista un equivalente Win32, ma (se ho ben capito il funzionamento di fork) puoi utilizzare i threads (vd. CreateThread).
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
A me serve creare un nuovo processo perche le operazioni che devo svolgere in questo processo possono provocare un segmentation fault che farebbe crashare tutto il programma, mentre cosi crasha solo quel processo; le funzioni tipo execl guardando il prototipo mi pare che servano ad eseguire un processo passando come argomento il path del processo da eseguire, cioè il processo si basa su un eseguibile già presente sul disco, mentre io vorrei creare un processo da programma, cosi come creo un thread, solo che voglio che abbia il proprio spazio di memoria, separato da quello del processo principale.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Forse cygwin ne fornisce una sorta di emulazione, non so quanto buona. Dai una occhiata. Nota che il 99.9% delle volte, l'uso della fork è associato a una exec, quindi non ci sono molti problemi a trasferire queste funzionalità su win32 (basta usare CreateProcess). Non so se quelli di cygwin siano riusciti ad emulare una fork 100% compatibile unix.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
Ma le funzioni come createProcess vogliono tutte come parametro il percorso all'eseguibile da eseguire...io non voglio dar vita ad un processo per un eseguibile gia esistente, voglio solo peter eseguire in un nuovo processo alune righe di codice del mio programma; l'unico escamotage mi pare fare creare un nuovo processo sul mio programma stesso, ma a differeza della fork con la quale l'esecuzione del nuovo processo creato riprende dal punto in cui e stata eseguita la fork, con createProcess mi verrebe eseguito tutto il programma dall'inizio.
__________________
Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Infatti ho detto che fork+exec è equivalente a CreateProcess.
Non esiste nulla di simile a fork su win32, prova a vedere se Cygwin offre una emulazione decente a fork (dubito).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:27.



















