1949的笔记 https://passport2.21ic.com/?678712 [收藏] [复制] [RSS]

日志

Linux调试笔记(6)进程

已有 640 次阅读2011-6-8 07:30 |系统分类:嵌入式系统

       今天学习到了用fork();函数在linux系统中建立一个进程。进程的概念很有趣,虽然我还不大清楚建立子进程的意义在哪里。


       子进程建立以后,会与父进程同时执行相同的代码,虽说是同时,但对于单核CPU,或ARM来说,都是一样的,因为同一时刻,CPU只执行一个进程而已。建立两个进程,还要费时间去进行进程的切换,对于提高效率,似乎没什么意义。


       为了了解创建进程后的程序运行,我做了下面的测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

int main(void)
{
    pid_t pid;
    pid = fork();
    if(pid < 0)
        printf("error");
    else if(pid == 0){
        while(1){
            printf("11\n");
            sleep(1);
        }
    }
    else{
        while(1){
            printf("22\n");
            sleep(1);
        }
    }
    return 0;
}

       编译运行后,就是一直发送11和22,再打开一个终端,用#ps -elf查看,确实有两个进程在运行。重复运行了几次,先显示11和先显示22的情况都有,说明父进程和子进程的运行顺序是不确定的。


      


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)