日期:2014-05-16  浏览次数:20662 次

关于子进程中读取某个全局变量的问题
在子进程中读取某个全局变量,此变量的值是不断变化的,为什么在子进程中却不变?

int gCount;

void readdata()
{
    int b;
    
    if (!fork())
    {
        while (1)
        {
            b = gCount * 5;
            printf("b = %d", b);
            sleep(1);
        }
        exit(0);
    }
}
因为全局变量gCount是不断变化,但是为什么输出的b却没有变化,要怎样才能实时读取gCount的值?

------解决方案--------------------
gCount的值在父进程中怎么变都不会影响子进程,因为子进程有自己的拷贝。
------解决方案--------------------
引用:
Quote: 引用:

gCount的值在父进程中怎么变都不会影响子进程,因为子进程有自己的拷贝。
哦,多谢啊,如果我要使用父进程的这个不断变化的全局变量,要怎么做才行?
 使用进程间通信,管道、共享内存等