www.3112.net > Fork函数有什么用

Fork函数有什么用

在Linux下产生新的进程的系统调用就是fork函数,这个函数名是英文中“分叉”的意思.为什么取这个名字呢?因为一个进程在运行中,如果使用了fork,就产生了另一个进程,于是进程就“分叉”了,所以这个名字取得很形象.下面就看看如何具体使用fork,这段程序演示了使用fork的基本框架: void main(){ int I; if ( fork() == 0 ) { /* 子进程程序 */ for ( I = 1; I

UNIX Programming FAQ 中文版 v0.1.0 Prev Next -------------------------------------------------------------------------------- Chapter 1. 进程控制 Table of Contents 1.1. 创建新进程:fork函数 1.2. 环境变量 1.3. 我怎样睡眠小于一秒? 1.4. 我怎样得到一个更细分

fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程.这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本.

仔细分析一下两段代码,可以发现一个区别:书上写的代码,判断了fork()的返回值为负的情况;而老师给的代码没有.fork()函数返回值是负,说明fork不成功.老师给的代码里没对它进行判断,绝大多数情况下是没有问题的.但作为程序员写程序需要考虑“健壮性”,必须得在任何异常情况下程序都不能出问题,不能有"memory faule core dumped". ^o^

fork一般用于处理多线程任务.比如在网络中,你需要同时发送多种请求报文,则可以fork出子进程来进行发包任务,而父进程则直接去做自己的逻辑任务.学习函数可以从功能入手,看它能够实现那些特定的需求.网络上给的只能是教科书似的定义,要是你想收获更多,建议看一些开源代码.

额..每启动一个进程并不一定要执行fork.fork只是系统最后封装的一个系统调用.你在程序里不使用fork的话.使用其它方式启动进程.就不是fork.fork族里有很多函数exec也可替换当前进程系统内核里生成一个进程用的是clone这个函数

理想状况下不会出现什么结果,无非就是你fork一次就多出一个进程,当然,这是理想状况.每一台机器的资源是有限的,因此进程数量到一定程度后,就会失败,并且系统资源耗竭,系统宕机,我们做过类似的实验的.希望这个答案能够对你有所帮助

一个进程就相当于一个主线程. fork一个进程与create一个线程的区别: fork进程:子进程复制父进程的进程环境.父进程结束不会影响子进程的运行.进程切换复制进程环境. create线程:子线程共享父线程的线程环境.线程(一个主线程下

一个进程执行了pid1 = fork(); 两个进程执行了pid2 = fork(); 四个进程执行了printf("ppid:%d \tpid1:%d \tpid2:%d \n",getppid(),pid1,pid2);

#include "stdio.h"#include "sys/types.h"#include "unistd.h"int main(){ int pid1; int pid2; pid1=fork(); if(pid1!=0) printf("pid1 parent\n"); else printf("pid1 child\n");pid2=fork(); if(pid2!=0) printf("pid2 parent\n"); else printf("pid2 child\n"

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com