// Разделяемая память Posix в Linux // Программа из учебника "Системное программирование в среде Linux", Гунько А.В., стр. 133 // Название: shmcreate.c // Описание: создание сегмента разделяемой памяти //pxshm/shmcreate.c #include #include #include #include #include #include #include #include #include #define FILE_MODE S_IRUSR | S_IWUSR int main(int argc, char **argv) { int c, fd, flags; char *ptr; off_t length; flags = O_RDWR | O_CREAT; while ((c = getopt(argc, argv, "e")) != -1) { switch (c) { case 'e': flags |= O_EXCL; break; } } if (optind != argc - 2) { printf("usage: shmcreate [ -e ] \n"); exit(-1); } length = atoi(argv[optind + 1]); fd = shm_open(argv[optind], flags, FILE_MODE); printf("Result:%s\n",strerror(errno)); ftruncate(fd, length); ptr = mmap(NULL, length, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); exit(0); }