Closed Sgwa closed 5 years ago
¡Hola! ¿Podrías usar errno
para ver si obtienes más detalles del error? Imprímelo antes y después de cada función para ver cómo cambia el valor de errno
. Viendo los valores impresos (dirección 0xfff...
) es posible que estés con errno 22
, i.e. que el argumento de una de tus funciones es inválido.
Cuéntanos cómo te va.
Referencias: 1) http://man7.org/linux/man-pages/man3/errno.3.html 2) https://www.tutorialspoint.com/cprogramming/c_error_handling.htm 3) https://stackoverflow.com/questions/503878/how-to-know-what-the-errno-means
¡Suerte!
PD: Solo para verificar... en la carpeta de ejecución existe el archivo "memoria
", ¿cierto?
¿Se puede usar la librería semaphore.h ?
@nfbalbontin Como dije en la issue #43, pueden usar las librerías de POSIX de C.
Saludos!
Hola, tengo un problema al usar
memcpy
para copiar una struct a la shared memory.En un principio mi struct era asi:
Donde solo guardaba 1 string de largo 256 y de esa forma funcionaba todo bien, podia copiarlo a la shared memory usando
memcpy
sin ningun problema y usarlo en los forks al castear el struct desde la shared memory, pero luego le hice modificaciones:Para que alojara un array de 100 strings de largo 256. Aumente la memoria dada a
shmget
para que el struct cupiera tanto en el main como en los forks, pero me encuentro con este errorAqui el codigo donde defino la shared memory y trato de copiar el struct.
(Por si es necesario aclarar: el error ocurre en la primera iteracion del for)
Aqui esta lo que imprimen los prints al momento de caerse, se puede observar que la memoria del struct es menor a la puesta en el
shmget
y que la ejecucion delshmget
no falla al dar un numero positivo.Por lo que no he sido capaz de encontrar el error.