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

  • 相关阅读:
    Kubelet 会做些什么
    k8s apiserver 源码阅读笔记
    robotframework环境安装
    Hper-V卸载
    Hyper-V安装虚拟机
    git下载/上传文件提示:git did not exit cleanly
    jmeter使用csv传参进行并发测试验证
    jenkins启动
    win7系统中 python2、python3安装后再安装插件时遇到的问题
    Base.py最基层的一些方法的封装--自己整理的一些小内容
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9410183.html
Copyright © 2020-2023  润新知