zoukankan      html  css  js  c++  java
  • linux下fork的使用

    fork 创建一个新的进程,新创建的进程是子进程,它是对父进程以后代码的一个复制,通常用来做多进程的服务器,也可以在子进程中运行独立的代码。
    用getpid可以判断当前是子进程还是父进程。

    看下面这个例子:

    #include <sys/types.h>
    #include <unistd.h>
    #include <stdio.h>
    int main()
    {
        pid_t pid;
        static int n = 0;
        printf("fork!/n");
        switch (pid = fork())
        {
            case -1:
            {
                /* ..pid.-1.fork.... */
                /* ........ */
                /* .......... */
                perror("The fork failed!");
                break;
            }
            case 0:
            {
                /* pid.0.... */
                printf("[child]i am child!/n");
                printf("[child]getpid=[%d]/n", getpid() );
                printf("[child]pid=[%d]/n", pid );
                break;
            }
            default:
            {
                /* pid..0.... */
                printf("[parent]i am parent!/n" );
                printf("[parent]getpid=[%d]/n",getpid() );
                printf("[parent]pid=[%d]/n",pid );
                break;
            }
        }
        printf("n=[%d]/n", n++);

        return 0;
    }

    这个例子在linux下用gcc编译,运行结果如下:

    fork!
    [child]i am child!
    [child]getpid=[7422]
    [child]pid=[0]
    n=[0]
    [parent]i am parent!
    [parent]getpid=[7421]
    [parent]pid=[7422]
    n=[0]

  • 相关阅读:
    #575. 「LibreOJ NOI Round #2」不等关系
    P4494 [HAOI2018]反色游戏
    P6378 [PA2010] Riddle
    子集卷积
    躯壳
    C++11、14、17里的lambda表达式简介
    数据结构与算法复习——7、斐波那契堆和配对堆
    数据结构与算法复习——6、二项队列及其分析
    数据结构与算法复习——5、摊还分析入门
    高等代数(二)预习——4、唯一因式分解定理
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9410183.html
Copyright © 2011-2022 走看看