/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Process creation
Fra : Michael Banzon


Dato : 20-01-04 16:37

Hej ;-D

Jeg plejer at kode C under Linux, og anvender
i den forbindelse fork()... Det virker dog ikke
under Windows... ... ??? Hvad skal jeg bruge her?

Jeg bruger Bloodshed Dev-C++


--
Michael Banzon
http://michael.banzon.dk/
http://southbound.dk/



 
 
Bertel Brander (20-01-2004)
Kommentar
Fra : Bertel Brander


Dato : 20-01-04 19:54

Michael Banzon wrote:
> Hej ;-D
>
> Jeg plejer at kode C under Linux, og anvender
> i den forbindelse fork()... Det virker dog ikke
> under Windows... ... ??? Hvad skal jeg bruge her?
>

system(), popen(), CreateProcess(), ShellExecute() eller ...

> Jeg bruger Bloodshed Dev-C++
>

Dev-C++ er ikke en kompiler, det en editor mv.
Jeg går ud fra at du bruger mingw.

/b


Michael Banzon (20-01-2004)
Kommentar
Fra : Michael Banzon


Dato : 20-01-04 17:13

"Bertel Brander" <bertel@post4.tele.dk> skrev...
> system(), popen(), CreateProcess(), ShellExecute() eller ...

Ok, tak, kan du komme med et eksempel på brugen?

> > Jeg bruger Bloodshed Dev-C++
> >
>
> Dev-C++ er ikke en kompiler, det en editor mv.
> Jeg går ud fra at du bruger mingw.

Jaja ;-D
Har blot downloaded standardversionen, den bruger vidst gcc
og glib (hvilket jo lød tiltalende)...


--
Michael Banzon
http://michael.banzon.dk/
http://southbound.dk/



Michael Banzon (20-01-2004)
Kommentar
Fra : Michael Banzon


Dato : 20-01-04 17:18

"Michael Banzon" <michael@banzon.dk> skrev...
> og glib (hvilket jo lød tiltalende)...

glibc that is ;-D

--
Michael Banzon
http://michael.banzon.dk/
http://southbound.dk/



Bertel Brander (20-01-2004)
Kommentar
Fra : Bertel Brander


Dato : 20-01-04 20:36

Michael Banzon wrote:
> "Bertel Brander" <bertel@post4.tele.dk> skrev...
>
>>system(), popen(), CreateProcess(), ShellExecute() eller ...
>
>
> Ok, tak, kan du komme med et eksempel på brugen?
>
Hvis du fortalte lidt mere om hvad du vil opnå, kan
jeg lave et bedre eksempel, end hvis jeg blot gætter.
>
>>>Jeg bruger Bloodshed Dev-C++
>>>
>>
>>Dev-C++ er ikke en kompiler, det en editor mv.
>>Jeg går ud fra at du bruger mingw.
>
>
> Jaja ;-D
> Har blot downloaded standardversionen, den bruger vidst gcc
> og glib (hvilket jo lød tiltalende)...

Standard versionen bruger vist mingw varianten af gcc

/b


Michael Banzon (20-01-2004)
Kommentar
Fra : Michael Banzon


Dato : 20-01-04 17:52

"Bertel Brander" <bertel@post4.tele.dk> skrev...
> Hvis du fortalte lidt mere om hvad du vil opnå, kan
> jeg lave et bedre eksempel, end hvis jeg blot gætter.

Umiddelbart skal jeg ha' kode der bruger fork() til at fungere
under Windows. Jeg har lige søgt i Google ;-D og fork() er jo
en posix-funktion, så direkte portning er nok ikke mulig,
eller? Sidder lige og kigger på CreateProcess på MSDN, og det
virker umiddelbart lidt mere besværligt end med fork()...

Det som jeg egentlig vil ha', er en funktion der gør som
fork() (eller næsten), og så noget dokumentation til denne ;-D

> Standard versionen bruger vist mingw varianten af gcc

true

--
Michael Banzon
http://michael.banzon.dk/
http://southbound.dk/



Jens Axel Søgaard (20-01-2004)
Kommentar
Fra : Jens Axel Søgaard


Dato : 20-01-04 20:56

Michael Banzon wrote:
> "Bertel Brander" <bertel@post4.tele.dk> skrev...

>>Hvis du fortalte lidt mere om hvad du vil opnå, kan
>>jeg lave et bedre eksempel, end hvis jeg blot gætter.

> Umiddelbart skal jeg ha' kode der bruger fork() til at fungere
> under Windows. Jeg har lige søgt i Google ;-D og fork() er jo
> en posix-funktion, så direkte portning er nok ikke mulig,
> eller?

Det ved jeg ikke, men afhængig af det drejer sig om,
kan det måske betale sig at kigge på Cygwin.

<http://www.cygwin.com/>

--
Jens Axel Søgaard

Bertel Brander (20-01-2004)
Kommentar
Fra : Bertel Brander


Dato : 20-01-04 21:18

Jens Axel Søgaard wrote:

> Michael Banzon wrote:
>> Umiddelbart skal jeg ha' kode der bruger fork() til at fungere
>> under Windows. Jeg har lige søgt i Google ;-D og fork() er jo
>> en posix-funktion, så direkte portning er nok ikke mulig,
>> eller?
>
>
> Det ved jeg ikke, men afhængig af det drejer sig om,
> kan det måske betale sig at kigge på Cygwin.
>
> <http://www.cygwin.com/>
>

Ifølge http://cygwin.com/faq.html har cygwin en implementation
af fork().

cygwin kan bruges sammen med Dev-C++

/b


Bertel Brander (20-01-2004)
Kommentar
Fra : Bertel Brander


Dato : 20-01-04 21:03

Michael Banzon wrote:

> "Bertel Brander" <bertel@post4.tele.dk> skrev...
>
>>Hvis du fortalte lidt mere om hvad du vil opnå, kan
>>jeg lave et bedre eksempel, end hvis jeg blot gætter.
>
>
> Umiddelbart skal jeg ha' kode der bruger fork() til at fungere
> under Windows. Jeg har lige søgt i Google ;-D og fork() er jo
> en posix-funktion, så direkte portning er nok ikke mulig,
> eller? Sidder lige og kigger på CreateProcess på MSDN, og det
> virker umiddelbart lidt mere besværligt end med fork()...
>
> Det som jeg egentlig vil ha', er en funktion der gør som
> fork() (eller næsten), og så noget dokumentation til denne ;-D
>
CreateProcess() er nok funktion der kan mest, men er, som du
kan se, også lidt besværlig at bruge.

Jeg tror at grunden til at der ikke findes en fork() til windows
er at det ikke er muligt at lave en funktion der gør nøjagtigt
det samme.

Så, fortæl hvad du skal bruge den til...

/b

PS: Du skal vist have stillet uret på din komputer.


Ole Nielsby (21-01-2004)
Kommentar
Fra : Ole Nielsby


Dato : 21-01-04 00:40


Bertel Brander <bertel@post4.tele.dk> skrev:

> Michael Banzon wrote:
> > Hej ;-D
> >
> > Jeg plejer at kode C under Linux, og anvender
> > i den forbindelse fork()... Det virker dog ikke
> > under Windows... ... ??? Hvad skal jeg bruge her?
> >
>
> system(), popen(), CreateProcess(), ShellExecute() eller ...

Jeg lugter en kommunikationsbrist her. Det som Michael kalder
en proces, er muligvis det der i Windows-termer kaldes en tråd.

Tråde hører til en proces og deles om dennes adresserum, mens
processer er isoleret fra hinanden.

Jeg ved ikke hvordan fork() virker, men Windows tråde startes
med CreateThread og synkroniseres efter behov med events,
critical sections eller mutexes, eller gennem message passing-
mekanismen.

ON/Fjern sneglen fra min svaradresse




Michael Banzon (22-01-2004)
Kommentar
Fra : Michael Banzon


Dato : 22-01-04 00:49

"Ole Nielsby" <ole.nielsby@snailmail.dk> skrev...
> Jeg lugter en kommunikationsbrist her. Det som Michael kalder
> en proces, er muligvis det der i Windows-termer kaldes en tråd.

Nej ;-D Det er ikke tilfældet...

> Jeg ved ikke hvordan fork() virker, men Windows tråde startes
> med CreateThread og synkroniseres efter behov med events,
> critical sections eller mutexes, eller gennem message passing-
> mekanismen.

Det der er problemet er at jeg kun har beskæftiget mig med C
under Linux, og fået undervisning i dette... Problemet består
så i at Linux er POSIX, hvilket ikke er tilfældet for Windows.

Jeg søger ikke nogen specifik løsning på nogle specifikke
problemer, blot en forståelse for hvordan at man "ordner"
det der "process-halløj" på en Windows-box ;-D

Igennem gruppen her er jeg blevet ledt på sporet, og har så
igennem Google og MSDN fundet svaret, og vil i den forbindelse
også sige tak for svarene ;-D

Og for så lige at svare Hr. Søgaards indlæg: Jeg har ved en
tidligere lejlighed kigget på Cygwin, og kan ikke rigtig se
hvad det skal gøre godt for. Jotak, at ligne et Linux-miljø
kan det, men kan de programmer jeg udvikler med det køre
selvstændigt???

Ps: Til de der ikke ved det:
fork() er et system-kald under Linux (POSIX) der kopierer den
givne process, med adresserum, ip, osv., og fortsætter
udførelsen i begge kopier af den originale process...
(ret mig endelig hvis jeg har misforstået noget ;-D)


--
Michael Banzon
http://michael.banzon.dk/
http://southbound.dk/



Anders Bo Rasmussen (22-01-2004)
Kommentar
Fra : Anders Bo Rasmussen


Dato : 22-01-04 02:31

On Thu, 22 Jan 2004 00:49:25 +0100 Michael Banzon wrote:

> Ps: Til de der ikke ved det:
> fork() er et system-kald under Linux (POSIX) der kopierer den
> givne process, med adresserum, ip, osv., og fortsætter
> udførelsen i begge kopier af den originale process...
> (ret mig endelig hvis jeg har misforstået noget ;-D)

På Linux er den implementeret, så lageret først bliver kopieret
efterhånden som der skrives til det.

--
Vil du gerne kunne afspille de CDere du køber?

http://www.digitalforbruger.dk/


Leo Havmøller (22-01-2004)
Kommentar
Fra : Leo Havmøller


Dato : 22-01-04 07:29

"Michael Banzon" <michael@banzon.dk> wrote in message
news:bujs1n$spr$1@sunsite.dk...
> Hej ;-D
>
> Jeg plejer at kode C under Linux, og anvender
> i den forbindelse fork()... Det virker dog ikke
> under Windows... ... ??? Hvad skal jeg bruge her?

UNIX Application Migration Guide:
http://msdn.microsoft.com/library/en-us/dnucmg/html/ucmglp.asp?frame=true&_r=1

Processor of fork er beskrevet under:
http://msdn.microsoft.com/library/en-us/dnucmg/html/UCMGch09.asp?frame=true&_r=1

Leo Havmøller.



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408183
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste