C/Visual C - Programa ComeMemoria

 
Vista:

Programa ComeMemoria

Publicado por jesus (11 intervenciones) el 06/10/2006 17:56:00
Buenas a todos; mi programa para el que necesito ayuda es el siguiente:

#include <stdio.h>

void ComeMemoria( ){
int *a;

a=malloc(100000000);
ComeMemoria( );
};
main(){
ComeMemoria( );
};

Come vemos es un programa recurrente que solo se dedica a reservar memoria; mi caso es que el sistema operativo para la ejecucion del programa por que este se queda con toda la memoria para el. ¿Como hacer para que el sistema operativo no para al programa?
(pense que hacer que el programa se copiase a otro archivo y despues se ejecutara para asi crear un monton de procesos identicos y que al sistema operativo no le diera timpo de cerrarlos todos, pero no se hacer que se hacer para ejecutar el archivo creado(Deberia crear un ejecutable, pero lo que yo cree era un archivo de texto))
Que puedo hacer?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programa ComeMemoria

Publicado por fernando.gomez (1603 intervenciones) el 06/10/2006 19:29:13
Pues es que desde C no tienes control sobre el sistema operativo. A lo más tienes acceso al API de éste, y según lo defina dicha API, tendrás acceso a __ciertas__ partes del sistema operativo. Evidentemente malloc ubica memoria para el proceso actual, y pues ubica 95.36 MB de memoria, por eso toda ésta se va hacia el programa.

Si lo que quieres es reservar memoria para el sistema operativo (!!!!!!!!!!) tendrías que buscar alguna función hecha ex profeso por el OS, o bien en el caso de sistemas Open Source, además podrías modificar el fuente del sistema, en este caso incrustar tu función ComeMemoria funcionaría sin problemas; y recompilar -por ejemplo- el kernel de Linux.

Aunque a fuer de ser sincero, no entiendo tus intenciones.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programa ComeMemoria

Publicado por Tom (8 intervenciones) el 09/10/2006 11:22:48
Vamos a ver ... si estás pidiendo memoria y no hay ¿qué quieres que el S.O. haga con tu programa?

Lo que tienes que hacer para que tu programa no pete es, lógicamente, capturar el error del malloc y hacer lo que puedas o quieras. La memoria en una máquina es un recurso físico limitado, recuérdalo.

Por cierto, es difícil bloquear una máquina (hablo de Unix/Linux) con un proceso de usuario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar