博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux学习—fork用法
阅读量:6516 次
发布时间:2019-06-24

本文共 620 字,大约阅读时间需要 2 分钟。

 linux当中可以使用fork函数创建一个新进程

  #include
  pid_t fork(void);
  返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1
  在fork调用之后,子进程获得父进程数据空间、堆和栈的副本,但是并不共享这些存储空间部分。
  fork的一个特性是父进程的所有打开文件描述符都被复制到子进程中。父、子进程的每个相同的打开描述符共享一个文件表项。
  这种共享文件的方式使父、子进程对同一文件使用了一个文件偏移量。
  fork有两种用法:
  (1)一个父进程希望复制自己,使父、子进程同时执行不同的代码段。例如,父进程等待客户端的服务请求,然后fork一个子进程处理这个请求,自己则继续等待下一个服务请求。
  (2)一个进程要执行一个不同的操作。fork一个子进程之后立马调用exec
  fork的特殊应用:fork两次可以避免僵死进程,(僵死进程是指一个已经终止,但是其父进程尚未对其进行善后处理的进程),父进程先fork一个子进程,子进程继续fork一个孙子进程,然后就直接退出。这样,父进程就可以很快的wait到子进程,释放其资源,不需要阻塞,继续自己的操作;而孙子进程交由了init进程托管,执行自己的操作而不用担心了。
  ps:write函数不带缓冲,标准I/O库是带缓冲的,如果标准输出练到终端设备,则它是行缓冲的,否则它是全缓冲的

最新内容请见作者的GitHub页:

转载地址:http://ellfo.baihongyu.com/

你可能感兴趣的文章
开发者需要知道的有关软件架构的五件事
查看>>
GitLab 9提供了子群组、部署面板和集成监控
查看>>
继爆款超级账本后,IBM再次推出新产品
查看>>
贝壳金控赵文乐:基于 Spring Cloud 的服务治理实践
查看>>
Pyspider框架 —— Python爬虫实战之爬取 V2EX 网站帖子
查看>>
区域生长算法 C++实现
查看>>
数据分析-从入门到崩溃
查看>>
web.xml 中的listener、 filter、servlet 加载顺序
查看>>
MyBatis原理简介和小试牛刀
查看>>
js部分基础
查看>>
Docker 常用基础命令
查看>>
脏读,幻读,不可重复读解释和例子
查看>>
Tomcat指定(JDK路径)JAVA_HOME而不用环境变量
查看>>
Bluemix专属版本落地中国 开放物联网和认知计算能力
查看>>
汤姆大叔的6道javascript编程题题解
查看>>
【世界知名量子科学家加盟阿里】施尧耘出任阿里云量子技术首席科学家
查看>>
DataCore对外出售其虚拟化软件产品
查看>>
说说云计算与移动管理
查看>>
T-Mobile美国使用28GHz频段测试5G
查看>>
如何缓解影子云服务安全风险?
查看>>