2012-11-30 11 views
5

Co to jest biblioteka, która definiuje fork(). Uczę się używać fork(). Dowiedziałem się, że standardowa biblioteka we/wy: stdio.h wystarczy, aby fork() działał, ale to nie ma zastosowania w moim przypadku.Biblioteka, która ma odniesienie do fork() w C

Używam gcc w Code::Blocks na Windows 8 Pro

Mój kod to:

#include<stdio.h> 
#include<conio.h> 
#include<stdlib.h> 
#include<malloc.h> 
#include <time.h> 

int main(void) 
{ 

    pid_t process; 
    process = fork(); 

    if(process< 0) 
    { 
     printf("fork failed"); 
    } 
    if(process > 0) 
    { 
     printf("\nParent Process Executed"); 
    } 

    if(process == 0) 
    { 
     printf("\nChild Process Executed"); 
    } 
    return 0 ; 
} 

Exact Błąd pojawia się:

useoffork.o: useoffork.c :(. text + 0xf): niezdefiniowane odniesienie do `widelca '

+0

to może pomóc człowiek widelec ... http: //linux.die.net/man/2/fork – Omkant

+0

możliwe duplikat [Undefined odniesienia do fork() w edytorze Code :: Blocks w systemie operacyjnym Windows] (http://stackoverflow.com/questions/8819673/undefined-reference-to-fork-in-codeblocks-editor-in-windows-os) – Rohan

Odpowiedz

4

C biblioteki standardowej (glibc) realizuje fork() który wywołuje/Linux specyficzne połączenie systemu UNIX w końcu stworzyć proces, w systemie Windows, należy użyć WinAPI CreateProcess() Zobacz przykład w MSDN.

Uwaga: Cygwin fork() jest tylko nakładką na CreateProcess() zobaczyć How is fork() implemented?

+0

co powinienem do tego dodać? @mux? – cipher

+0

@cipher link ma przykład – iabdalkader

+0

Potrzebowałem podstawowej rzeczy w 'C' A twój link dotyczy' C++ '. Anywaysm Dzięki za pomoc. – cipher

3

Używam gcc w kodzie :: Blocks na Windows 8 Pro

Nie masz fork na Windows. Możesz jednak użyć cygwin lub czegoś podobnego.

+0

alternatywne rozwiązanie do okien bez użycia cygwin? – MOHAMED

+1

@MohamedKALLEL Nie używaj 'fork'. – cnicutar