如何修改fork()函数?

时间:2014-03-24 12:26:22

标签: c linux windows process operating-system

我是操作系统的新手,在我的OS项目上工作,我想知道一种方法,我可以通过它来更改fork函数(创建子进程的函数)。 我不知道fork是在Windows上运行还是仅在Linux上运行。

我想对fork进行一些更改,即它应该打印出是否创建了子进程,为此我不得不得到fork函数的定义我是无法找到。

我知道它存在于<sys/types.h>中,但不知道在哪里。

我有人可以给我一个方法或只给出fork函数定义,我会很棒,进一步我会更新自己。

1 个答案:

答案 0 :(得分:5)

您无法修改fork。这是一个系统调用(通常使用libc包装器)。它是特定于UNIX的,在Windows中不存在于同一表单中。

它返回3个可能值中的一个:

0)这是在孩子身上返回的!

正数)父进程中返回子进程ID

否定号码)未能创建子项,请查看errno原因。

使用示例:

pid_t child_pid = fork();
if (!child_pid) {
    // child goes here
} else if (child_pid > 0) {
    // parent goes here
} else {
    // could not create child
    perror("fork");
    abort();
}

详情请咨询man 2 fork