2012-11-30 47 views
5

參照叉()這是定義叉庫()。我正在學習使用fork()。我發現標準I/O庫:stdio.h足以讓fork()工作,但這不適用於我的情況。庫具有用C

我在Code::Blocks使用gccWindows 8 Pro

我的代碼是:

#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 ; 
} 

確切的錯誤我得到的是:

useoffork.o:useoffork.c :(。文本+ 0xf):未定義參考`叉」

+0

這可能會幫助你的男人叉... HTTP://linux.die.net/man/2/fork – Omkant

+0

[未定義參考的可能重複在Windows操作系統下代碼::塊編輯器叉()](http://stackoverflow.com/questions/8819673/undefined-reference-to-fork-in-codeblocks-editor-in-windows-os) – Rohan

回答

4

C標準庫(glibc的)實現fork()它調用一個UNIX特定的Linux /系統調用最終創建一個進程,在Windows上,你應該使用WINAPI CreateProcess()看到MSDN這個例子。

注:Cygwin的fork()是隻是一個包裝圍繞CreateProcess()看到How is fork() implemented?

+0

我應該包括什麼? @mux? – cipher

+0

@cipher鏈接有一個例子 – iabdalkader

+0

我需要基本的東西'C'和你的鏈接是關於'C++'。 Anywaysm感謝您的幫助。 – cipher

3

我使用的Windows 8 Pro的

在代碼:: Blocks的GCC您沒有在Windows fork。你可以使用cygwin或類似的東西。

+0

替代的解決方案沒有使用cygwin的窗口? – MOHAMED

+1

@MohamedKALLEL不要使用'fork'。 – cnicutar