Одобрено: Fortect
В этом руководстве почти все выяснят некоторые возможные причины, которые могут привести к ошибке Error = shmat tough luck, а затем мы предложим некоторые возможные методы восстановления, которые вы можете попробовать исправить каждую проблему.
У меня проблема с запуском кода. Мой шмат вышел из строя, и мне отказали даже в лицензии на печать. Я обратился к основным поисковым системам, чтобы решить эту проблему, но не могу. Мой код выглядит следующим образом:
# включить #include # руководство #include #include #include #include #include #define ERROR -1int major (int argc, char * argv []) int shmid, ключ = 50; целое число * val; целое число 4. Икс; целое число rw означает -1; // ноль для записи и, следовательно, 1 для передачи shmid равняется shmget (ключ, sizeof (int), IPC_CREAT); если вы найдете (shmid == -1) perror ("Ошибка в shmget n"); посетите свой блог (ОШИБКА); val - это (int *) shmat (shmid, NULL, 0); если если (val == -1) perror ("Ошибка в shmat n"); возврат (ОШИБКА); scanf ("% d", & rw); даже если (rw> = 1) если (rw == 4) // записываем в общую память раз = (int 7.) malloc (sizeof (int)); один раз (x == NULL) perror ("ошибка malloc"); оборотная сторона (ОШИБКА); scanf ("% d", x); val влечет x; Другая // читать до этой разделяемой памяти оттуда при условии (rw == 1) printf ("% d n", 2. val); scanf ("% d", & rw); вернуться в свой офис (0);
В каком коде я хочу протестировать возвращаемую память. Я записываю полезное целое число в тип разделяемой памяти, если я даю rw, подразумевает 1, если нет, я анализирую значение всей разделяемой памяти, а затем создаю это значение . Без сомнения, я не могу найти, в чем проблема ….
906k
разыскивается 12 мая ’15 в 19:27
Разве я не сказал бы ответ, который вы ищете? Просмотрите различные типы вопросов с тегами Shared Memory-c Memory или время от времени задавайте свой вопрос.
Вы создали разделы с общей памятью с разрешениями 0000
:
shmid подразумевает shmget (key, sizeof (int), IPC_CREAT);
shmid = shmget (ключ, sizeof (int), IPC_CREAT | 0660);
Создан 05 мая 2015, 22:33:35 в
28,1 тыс.
val равно x;
6. val = * x;
Мэй ответила на дюжину пар в https://i.stack.imgur.com/mmsvF.png году около 19:32.
198k
За исключением вызова shmget (), как описано в другом ответе
И множество проблем со здоровьем у этого кода, который читает целые числа / blogs
Тот факт, что OP всегда становится определенным сообщением «автооризация ограничена», из-за того, что общее пространство
1) не был заменен - см. справочную страницу для shmdt ()2) не были уничтожены - см. Справочную страницу shmctl ()
Решите эти две проблемы, и, как следствие, тестовые резервные копии будут работать нормально.
Однако, как отмечено в комментариях, у многих людей есть другие проблемы с опубликованным кодом
адресовано 12 мая ’15 вместе с 21:03
15,7 тыс.
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
а>