1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

ICP shared memory

Discussion in 'C' started by cavemandave, Nov 20, 2007.

  1. cavemandave

    cavemandave New Member

    Joined:
    Nov 20, 2007
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    hi people i have been teaching myself C for the last few months and have recently moved onto ICP shared memory. I have with aid developed some simple code that prints out some chars i then wanted to do the same with int but cannont seem to get it to work. http://www.go4expert.com/newthread.php?do=newthread&f=20#


    producer

    Code:
    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/shm.h>
    #include <stdio.h>
    
    #define SHMSZ     27
    
    int main()
    {
        int c;
        int shmid;
        key_t key;
        int *shm, *s;
    
        key = 5678;
    
    
        if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) {
            perror("shmget");
            return(1);
        }
    
    
        if ((shm = shmat(shmid, NULL, 0)) == (int *) -1) {
            perror("shmat");
            return(1);
        }
    
        s = shm;
    
        for (c = 10; c <= 20; c++)
            *s++ = c;
        *s = -1;
    
    
        while (*shm != '*')
            sleep(1);
    
        return(0);
    }
    
    
    consumer

    Code:
    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/shm.h>
    #include <stdio.h>
    
    #define SHMSZ     27
    
    int main()
    {
        int shmid;
        key_t key;
        char *shm, *s;
    
    
        key = 5678;
    
    
        if ((shmid = shmget(key, SHMSZ, 0666)) < 0) {
            perror("shmget");
            return(1);
        }
    
    
        if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) {
            perror("shmat");
            return(1);
        }
    
    
        for (s = shm; *s != 0; s++)
            putchar(*s);
        putchar('\n');
    
    
        *shm = '*';
    
        return(0);
    }
    
    :confused: :confused:
     
    Last edited by a moderator: Nov 20, 2007

Share This Page