• 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]

  • 相关阅读:
    运维自动化轻量级工具pssh
    Linux下的tar压缩解压缩命令详解
    [shell] while read line 与for循环的区别
    Linux sed命令
    [转]linux awk命令详解
    Centos7上部署openstack ocata配置详解
    自动化运维工具——puppet详解(一)
    OpenStack 初探(一) -- All-In-One模式部署(初学OpenStack必备)
    shell中的重定向(输入输出)
    vim批量注释和反注释快捷键
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9410183.html
Copyright © 2020-2023  润新知