如何修改fork()函数?

Muh*_*raz -2 c linux windows operating-system process

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

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

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

我有人可以给我一个方法或只给出fork功能定义,我会很棒,进一步我会更新它自己.

Ser*_* L. 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();
}
Run Code Online (Sandbox Code Playgroud)

咨询man 2 fork更多细节.