我是操作系统的新手,在我的OS项目上工作,我想知道一种方法,我可以通过它来更改fork
函数(创建子进程的函数)。
我不知道fork
是在Windows上运行还是仅在Linux上运行。
我想对fork
进行一些更改,即它应该打印出是否创建了子进程,为此我不得不得到fork
函数的定义我是无法找到。
我知道它存在于<sys/types.h>
中,但不知道在哪里。
我有人可以给我一个方法或只给出fork
函数定义,我会很棒,进一步我会更新自己。
答案 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
。