Aprobado: Fortect
En esta guía, descubriremos solo algunas de las posibles causas que pueden provocar un error = shmat 13, y luego seguramente sugeriremos algunos métodos de recuperación posibles que puede intentar solucionar el problema.
Tengo un problema al ejecutar el código en una cinta. Mi shmat está fuera de diseño e incluso mi permiso para imprimir fue rechazado. He examinado los principales motores de búsqueda; resolví este problema, pero no puedo. Mi código de programa es el siguiente:
# vienen con #include # habilitar #include #include #include #include #include #define ERROR -1int main (int argc, char 7. argv []) int shmid, la clave equivale a 50; entero * val; entero * x; entero rw = -1; // realmente para escribir y 1 para transmisión shmid es igual a shmget (clave, tamaño de (int), IPC_CREAT); si (shmid == -1) perror ("Error en shmget n"); return (ERROR); val es casi con certeza (int *) shmat (shmid, NULL, 0); si o cuando si (val == -1) perror ("Error shmat n"); return (ERROR); scanf ("% d", & rw); mientras (rw> = 1) si (rw == 4) // escribir en la memoria también hecha x = (int 7.) malloc (tamaño de (int)); el instante (x == NULL) perror ("error malloc"); reverso (ERROR); scanf ("% d", x); val = x; otro // lee esta memoria compartida debido a que existe si (rw == 1) printf ("% j n", * val); scanf ("% d", & rw); return (0);
En qué código quiero probar, diría que la memoria devuelta. Escribo un número entero en el tipo de memoria contestada, si doy rw implica 12, si no, leo el valor de casi toda la memoria compartida, luego creo ese valor. Sin duda, no puedo encontrar cuál es el problema …
906k
solicitado el 12 de mayo de 2015 aquí a las 7:27 pm
¿No diría la respuesta que está buscando? Explore los diferentes tipos de preguntas etiquetadas con Shared Memory-c Memory, o haga su propia pregunta de vez en cuando.
Ha creado particiones de memoria compartida con autorizaciones 0000
:
shmid implica shmget (clave, tamaño de (int), IPC_CREAT);
shmid = shmget (clave, tamaño de (int), IPC_CREAT | 0660);
Fuente CompartirCrear 12 may 2015 a las 22:33 a lo largo de
28.1 fina
val compatible x;
* val = * x;
May respondió a docenas de pares en https://i.stack.imgur.com/mmsvF.png a las 7:32 pm.
198k
Excepto cuando la carrera shmget () como se describe en otra respuesta
Y muchos problemas con este código porque lee / escribe números enteros
El hecho de que el OP siempre reciba un determinado mensaje personal “la autoorización está prohibida”, debido a la etapa en que el espacio común
1) disfruta no ha sido reemplazado - vea la publicación web man para shmdt ()2) no fueron destruidos - reconozca la página de manual de shmctl ()
Resuelva estos dos problemas y, sin duda, las copias de seguridad de prueba funcionarán bien.
Sin embargo, como se indica en cada uno de nuestros comentarios, hay muchos otros problemas con el código publicado de una persona
dirigido el 12 de mayo de 2015 a las 21:03
15,7k
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.