Write into shared memory segments

I have created a shared memory segment (which size is 64 bytes) using shmget, shmat e.t.c and i want to divide it into 2 areas. One area for input data and one area for output? How can i do that?

Furthermore, When i have to write my input data into the shared memory segment i want to write something like this:

a text messase, an integer, another integer

Which function of c should i use? If i had to write only a text message and read it from another process i would use memcpy, but now i have the text messase and two integers (which i use as flags in my code).

You can memcpy them - integers are stored in binary format, not as textual digits.
To read it back out, you have to know the exact format of what was written to start with.

IF you don't like that use sprintf() then memcpy();

I'm guessing the purpose of that is to make half of it read-only. If so, you should just make two segments, I don't think you can make half of a segment read-only and certainly not in tiny 32-byte chunks. The OS can only actually map and protect memory in chunks of size pagesize(), which is often 4 kilobytes or more. See mmap() and mprotect() for details on what it's doing.

If that's not what you mean then I don't understand your question. Why not just use the upper and lower halves as is?

mmap PROT_READ and PROT_WRITE I think would probably work for what you want to do