2012-11-30 7 views
5

fork()を定義するライブラリとは何ですか?私はfork()を使うことを学んでいます。私は、標準I/Oライブラリ:stdio.hがfork()を動作させるのに十分であることを知りましたが、それは私のケースでは当てはまりません。私は私のコードC言語のfork()への参照を持つライブラリ

Windows 8 ProCode::Blocksgccを使用しています

は次のとおりです。

#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): `fork 'への未定義参照

+0

を参照してください...のhttp:[未定義参照の//linux.die.net/man/2/fork – Omkant

+0

可能重複(Windows OSのCode :: Blocksエディタで)fork()する方法を教えてください。(http://stackoverflow.com/questions/8819673/undefined-reference-to-fork-in-codeblocks-editor-in-windows-os) – Rohan

答えて

4

C標準ライブラリ(glibcでは)が最終的にプロセスを作成するために、UNIX/Linux固有のシステムコールを呼び出すfork()を実装し、Windows上で、あなたはWINAPIを使用する必要がありますCreateProcess()MSDNでこの例を参照してください。

注:Cygwinのfork()CreateProcess()単なるラッパーで、これはあなたの男フォークを助けるかもしれHow is fork() implemented?

+0

私はそれに何を含めるべきですか? @mux? – cipher

+0

@cipherリンクには例があります – iabdalkader

+0

私は 'C'に基本的なものが必要でした。あなたのリンクは' C++ 'に関するものです。とにかく助けてくれてありがとう。 – cipher

3

私は、Windows上のforkれていないWindows 8 Proの

上のコード::ブロック内のgccを使用しています。あなたはcygwinなどを使用することができます。

+0

代替ソリューションcygwinを使わずにウィンドウのために? – MOHAMED

+1

@MohamedKALLEL 'fork'は使わないでください。 – cnicutar

関連する問題