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.
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);
}
any ideas?