Example #1
0
int main()
{
    int         fd;
    void*       ptr = NULL;
    const size_t    memLen = sizeof(SharedBuffer) + SHARED_BUFSIZ;

    //!! 注意flag和producer不同
    fd = Shm_open( SHARED_NAME, O_RDWR, FILE_MODE);
    ptr = Mmap(NULL, memLen, PROT_READ | PROT_WRITE,
               MAP_SHARED, fd, 0);
    Ftruncate(fd, memLen);
    Close(fd);

    pBaseAddr = (char*)ptr + sizeof(SharedBuffer);
    SharedBuffer *pSharedBuf = (SharedBuffer*)ptr;

    unsigned char ch;
    while( true ) {
        pSharedBuf->Read( &ch, 1 );
        DBG("Consumed %02u", ch);
        // sleep(5);
    } // while 

    return 0;
}