Library that has reference to fork() in C

2019-02-17 11:51发布

问题:

What is the library that defines fork(). I am learning to use fork(). I found out that the Standard I/O Library : stdio.h is enough for fork() to work but that does not apply in my case.

I am using gcc in Code::Blocks on Windows 8 Pro

My Code is:

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

The Exact Error I get is:

useoffork.o:useoffork.c:(.text+0xf): undefined reference to `fork'

回答1:

The C standard library (glibc) implements fork() which calls a UNIX/Linux-specific system call eventually to create a process, on Windows, you should use the winapi CreateProcess() see this example in MSDN.

Note: Cygwin fork() is just a wrapper around CreateProcess() see How is fork() implemented?



回答2:

I am using gcc in Code::Blocks on Windows 8 Pro

You don't have fork on windows. You can use cygwin or something like that though.



标签: c fork