• Linux下的C高级编程---学习


    一、进程

           一个正在运行的程序称为进程。例如在屏幕上正打开两个终端窗口,则说明同一个终端程序正在做为两个进程而同时执行,而每个终端窗口又都在执行shell,则每个shell又是另外一个进程。

    1.1进程标识

          每一个Linux下的进程都要分配一个唯一的进程标识(pid),pid是一个16比特的整数。此外,除了init进程外,每一个进程都有一个父进程。

    #include <stdio.h>
    #include <unistd.h>
    
    int main()
    {
        printf("The process ID is %d
    ",(int)getpid());
        printf("The parent process ID is %d
    ",(int)getppid());
        return 0;
    }

       运行结果:

                    Screenshot-root@localhost^%~-Pthread

    1.2创建进程

             每一个进程都有唯一的标识pid,而子进程是一个新产生的进程,一定具有不同于父进程的pid,所以就可以pid来区分父进程和子进程。<1>通过getpid获知当前进程的pid值。<2>也可以根据fork系统调用的返回值来判断,即父进程执行完fork后的返回值就是子进程 的pid,而在子进程中该返回值为0,显然没有任何进程的pid会等于0,于是就是可以在程序中轻易区分当前到底是父进程还是子进程 正在执行。

    #include <stdio.h>
    #include <sys/types.h>
    #include <unistd.h>
    
    int main()
    {
        pid_t child_pid;
        int i = 1;
        printf("The main program process ID is %d
    ",(int)getpid());
        child_pid = fork();
        if(child_pid != 0)
        {
            i = 0;
            printf("This is the parent process,with id %d and i = %d
    ",(int)getpid(),i);
            printf("The child's process ID id %d
    ",(int)child_pid);
        }
        else
            printf("This is the child process,with id %d and i = %d
    ",(int)getpid(),i);
        return 0;
    }
  • 相关阅读:
    2017.3.11[bzoj2440][中山市选2011]完全平方数
    2017.3.6[hihocoder#1415]后缀数组三·重复旋律3
    2017.3.4[hihocoder#1407]后缀数组二·重复旋律2
    [NOI2013]快餐店
    [HNOI2014]米特运输
    [HNOI2015]亚瑟王
    [JLOI2013]卡牌游戏
    [SDOI2010]地精部落
    [ZJOI2007]棋盘制作
    [AHOI2009]中国象棋
  • 原文地址:https://www.cnblogs.com/haoyuanyuan/p/3265628.html
Copyright © 2020-2023  润新知