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\n",(int)getpid());
    printf("The parent process ID is %d\n",(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\n",(int)getpid());
    child_pid = fork();
    if(child_pid != 0)
    {
        i = 0;
        printf("This is the parent process,with id %d and i = %d\n",(int)getpid(),i);
        printf("The child's process ID id %d\n",(int)child_pid);
    }
    else
        printf("This is the child process,with id %d and i = %d\n",(int)getpid(),i);
    return 0;
}
posted @ 2013-08-18 08:10  记忆斑驳的时光  阅读(1623)  评论(1编辑  收藏  举报