代码:

 #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. C++ 知识点 2

    基本类型常量 const int a; int const a; const int *a; int * const a; int const * a const; 之间的区别? const int ...

  2. linux 常用压缩工具快速指南

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压 ...

  3. for_each 用法!

    class MapTest:public CapTest{ private: set <string> MyTestContain; typedef pair <string,int ...

  4. 关于SRAM,DRAM,SDRAM,以及NORFLASH,NANDFLASH

    韦东山的视频里面说S3C2440有4KB的内存,这个其实是不正确的,这4KB的RAM严格说不应该叫内存,严格来说芯片外面的64MB的SDRAM才能叫做内存,里面的那4KB只是当nandflash启动的 ...

  5. SalutJs

    SalutJs 前言 卤煮在公司之初接触到的是一个微信APP应用.前端技术采用的是Backbone+zepto等小型JS类库.在项目开发之初,这类中小型的项目采用这两种库可以满足基本的需求.然而,随着 ...

  6. GridView 中Item项居中显示

    直接在GridView中设置 android:gravity="center"这个属性是不起作用的.要在你adapter中的布局文件中设 置android:layout_gravi ...

  7. jquery.mmenu

    http://mmenu.frebsite.nl/ 左右滑动效果 http://blog.sina.com.cn/s/blog_6a0a183f0100zsfk.html js的左右滑动触屏事件,主要 ...

  8. Handler处理长时间事件

    当我们在处理一些比较长时间的事件时候,比如读取网络或者数据库的数据时候,就要用到Handler,有时候为了不影响用户操作应用的流畅还要开多一个线程来区别UI线程,在新的线程里面处理长时间的操作.开发的 ...

  9. 【转】Windows 7下硬盘安装Ubuntu 14.04图文教程--不错

    原文网址:http://www.linuxidc.com/Linux/2014-04/100369p3.htm Ubuntu 官方已经发布了正式版的 Ubuntu 14.04 LTS,并宣称这是为云计 ...

  10. cf437C The Child and Toy

    C. The Child and Toy time limit per test 1 second memory limit per test 256 megabytes input standard ...