/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Bloqueo de sistema operativo por código en C

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
jabar



Registrado: 20 Ene 2014
Mensajes: 5

MensajePublicado: 20/01/2014 10:01 pm
Título: Bloqueo de sistema operativo por código en C

Muy buenas, estaba tratando de probar las alertas "\a" en C con un sencillo código pero al ejecutarlo se bloquea el sistema operativo, uso Ubuntu 13.10 de 64 bits con 10 G de Ram. el código es el siguiente:

Código:

#include<stdio.h>

int main(void)
{
     int i=0;

     while(i < 10)
     {
          printf("\a");
     }

     return 0;

}



El sistema deja de responder cada vez que ejecuto el programa y tengo que reiniciar la maquina, me gustaría saber si alguien tiene alguna idea de lo que pasa.
Volver arriba
dehm



Registrado: 29 Abr 2011
Mensajes: 143

MensajePublicado: 21/01/2014 12:38 am
Título:

El programa básicamente consiste en un bucle al que no le pones condición de salida.

La variable i vale 0, y mientras sea menor de 10 se seguirá ejecutando el bucle.
Dentro del bucle has de definir una condición de salida. Puede ser que vaya cambiando el valor hasta que éste deje de cumplir la condición del bucle, o que pida al usuario ese valor...en fin, tal como está ahora está "condenado" a repetirse, hasta que te ves obligado a reiniciar la máquina. Smile
_________________
Aprendiendo
Volver arriba
jabar



Registrado: 20 Ene 2014
Mensajes: 5

MensajePublicado: 21/01/2014 12:08 pm
Título:

Muchas gracias, pero me surge la duda, porque se bloquea el sistema, no podría simplemente permitirme salir de un programa que se esta ejecutando dándole al Ctrl+C?

y otra cosa, porque no escucho ninguna alarma, uso el gcc
Volver arriba
daltomi



Registrado: 28 Abr 2007
Mensajes: 335
Ubicación: Argentina

MensajePublicado: 21/01/2014 1:06 pm
Título:

jabar escribió:
porque se bloquea el sistema, no podría simplemente permitirme salir de un programa que se esta ejecutando dándole al Ctrl+C?

Porque tú programa ocupa muchos ciclos de CPU quedando todo el sistema saturado. Cuando envías un break al programa con Ctrl+c ( en Windows creo que es Ctrl+z) el evento queda en cola para ser procesado, pero como el sistema está ocupado puede generarse un retraso de varios segundos; a veces no queda otra que reintentar a lo loco.
Si utilizas Linux puede lanzar un comando para matar el programa , asi: killall -9 nombre_app.

jabar escribió:
porque no escucho ninguna alarma, uso el gcc

Porque desde el punto de vista del compilador el programa es sintáticamente correcto. Lo que tienes es un clásico runtime-error o logic-error; los compiladores no encuentran estos tipos de errores.

Saludos.
Volver arriba
Dirección AIM
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com