MS
Size: a a a
MS
MS
DO
#include <stdio.h>
#include <sys/shm.h>
#include <sys/stat.h>
#include <string.h>
int main()
{
char str[100];
int segment_id;
char *shared_memory;
struct shmid_ds shmbuffer;
int segment_size;
const int shared_segment_size=0x6400;
fgets(str,sizeof(str),stdin);
segment_id=shmget(IPC_PRIVATE,shared_segment_size,IPC_CREAT|IPC_EXCL|S_IRUSR|S_IWUSR);
shared_memory=(char*)shmat(segment_id,0,0);
printf("\n Сегмент разделяемой памяти подключен по адресу:%p",shared_memory);
shmctl(segment_id,IPC_STAT,&shmbuffer);
segment_size=shmbuffer.shm_segsz;
printf("\n Размер сегмента:%d",segment_size);
strcpy(shared_memory,str);
shmdt(shared_memory);
shared_memory=(char*) shmat(segment_id,(void*)0x5000000,0);
printf("\n Сегмент разделяемой памяти переподключен по адресу:%p",shared_memory);
printf("\n Строка из памяти: %s",shared_memory);
shmdt(shared_memory);
shmctl(segment_id,IPC_RMID,0);
return 0;
}
MS
MS
DO
MS
DO
MS
DO
MS
MS
MS
MS
DO
TF
TF
MS
MS