代码:

 #include <iostream>
#include <string>
#include <cstdio>
#include <unistd.h>
#include <sys/wait.h> using namespace std; int main(int argc,char* argv[]){ pid_t pid;
for(int i = ; i < ; i++){
cout<<"fork!";
pid = fork();
if(pid == ){
cout<<"I am child, my pid is "<<getpid()<<endl;
}else{
cout<<"I am father, my pid is "<<getpid()<<endl;
wait(NULL);
}
} return ;
}

输出:

fork!I am father, my pid is 7499
fork!I am child, my pid is 7500

假如程序第13行改为

cout<<"fork!"<<endl;

则输出变为

fork!
I am father, my pid is 7360
I am child, my pid is 7361

分析:

cout先输入到缓冲区(没有直接输出到屏幕),执行fork后缓冲区被复制。加了endl则会直接输出,可以看出endl有换行和清空的作用。

linux中的fork函数的基本用法的更多相关文章

  1. [fork]Linux中的fork函数详解

    ---------------------------------------------------------------------------------------------------- ...

  2. 深入解析Linux中的fork函数

    1.定义 #include <unistd.h> #include<sys/types.h> pid_t fork( void ); pid_t 是一个宏定义,其实质是int, ...

  3. Unix/Linux中的fork函数

    fork函数介绍 一个现有进程可以调用fork函数创建一个新进程.该函数定义如下: #include <unistd.h> pid_t fork(void); // 返回:若成功则在子进程 ...

  4. linux中的fork()函数以及标准I/O缓冲

    1. fork()创建的新进程成为子进程.一次调用,两次返回,子进程的返回值是0,而父进程的返回值是新子进程的进程ID,如果出现错误,fork返回一个负值. 2. 可以通过fork返回的值来判断当前进 ...

  5. Linux编程之fork函数

    在Linux中,fork函数的功能就是在一个进程中创建一个新的进程,当前调用fork函数的进程就是产生的新进程的父进程,新进程在以下也称为子进程.在新进程生成之后就会在系统中开始执行. 函数原型:pi ...

  6. linux 中解析命令行参数(getopt_long用法)

    linux 中解析命令行参数(getopt_long用法) http://www.educity.cn/linux/518242.html 详细解析命令行的getopt_long()函数 http:/ ...

  7. 【Linux 进程】fork函数详解

    一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同, ...

  8. 详解Linux中的cat文本输出命令用法

    作系统 > LINUX >   详解Linux中的cat文本输出命令用法 Linux命令手册   发布时间:2016-01-14 14:14:35   作者:张映    我要评论   这篇 ...

  9. 浅析linux中的fork、vfork和clone

    各种大神的混合,做个笔记. http://blog.sina.com.cn/s/blog_7598036901019fcg.html http://blog.csdn.net/kennyrose/ar ...

随机推荐

  1. NonUniqueObjectException 问题

    org.hibernate.NonUniqueObjectException: a different object with the same identifier value was alread ...

  2. java学习笔记 (8) —— Struts2 实现上传

    1.新建upload.jsp <%@ page language="java" import="java.util.*" pageEncoding=&qu ...

  3. js中的逻辑或和逻辑与

    a=''||'abc';                              //返回什么?  'abc' a=1||2;                                  // ...

  4. php基础之三 数组

    一.正则表达式: 1. "/"代表界定符, "^"代表开始符号 "&"结束符号 eg:   $reg="/(13[0-9] ...

  5. c# 与 c++ 编译

    C#的所有方法封装在类中,类的方法没有先后之分,无需声明.//而C++必须在函数调用前,由编译器检查参数类型是否合法,所以必须知道函数的原形(protype),所以必须提前声明函数的签名(signat ...

  6. openpyxl

    openpyxl库的使用,这个处理xlsx还是挺有用的 ref:传送门 from openpyxl import Workbook from openpyxl import load_workbook ...

  7. KEIL简单实例

    好久都没有用KEIL了,突然想动手,一时还真不知道从哪开始写,所以先弄个小实例,以便参考:#include <reg52.h>  //加载包括一个52标准内核的头文件,里面主要是一些寄存器 ...

  8. CentOS6.5切换 语言(附带6.5官方下载地址)

    1 在终端中输入命令[sudo vim /etc/sysconfig/i18n]来编辑i18n文件, 2 把“zh_CN.UTF-8”修改为“en_US.UTF-8”, 3 保存修改并退出,如果提示这 ...

  9. OR扩展

    <pre name="code" class="sql">SQL> select substr(xx.acct_no,1,5) agent_o ...

  10. js深入研究之神奇的匿名函数类生成方式

    <script type="text/javascript"> var Book = (function() { // 私有静态属性 ; // 私有静态方法 funct ...