Mi programa tiene que escribir y leer en memoria pero me da un error de segmentación.
Cuando mando algo a guardar me da este error
./mem e "Palabra"
./mem: Segmentation fault (core dumped)
Código C:
Ver original
#include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXELE 27 int main(int argc, char *argv[]) { int id_memoria; key_t segmento; char *memoria, *cadena; // Nombre del segmento de memoria segmento = 5678; // Creación del segmento de memoria if((id_memoria = shmget(segmento, MAXELE, IPC_CREAT | IPC_EXCL | 0666)) == -1) { error("shmget"); } // Unión del segmento de memoria a espacio de datos if((memoria = shmat(id_memoria, NULL, 0)) == (char *)-1) { } //Escribir en memoria //strncpy(argv[2], memoria, MAXELE); memoria = (char *)'a'; //Leer de la memoria //Eliminar de la memoria { shmctl(id_memoria, IPC_RMID, NULL); } //Detach { if (shmdt(memoria) == -1) { } } return 0; }