Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Parar 2 segundos un proceso

Estas en el tema de Parar 2 segundos un proceso en el foro de C/C++ en Foros del Web. Hola, Como podria detener la ejecucion de un proceso en un codigo escrito en c? En el sistema hay varios procesos, y uno de ellos ...
  #1 (permalink)  
Antiguo 21/01/2015, 06:51
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 14 años, 3 meses
Puntos: 0
Parar 2 segundos un proceso

Hola,

Como podria detener la ejecucion de un proceso en un codigo escrito en c?
En el sistema hay varios procesos, y uno de ellos necesito que en un punto concreto no se ejecute.

Muchas gracias
  #2 (permalink)  
Antiguo 21/01/2015, 08:57
 
Fecha de Ingreso: octubre-2013
Mensajes: 44
Antigüedad: 11 años
Puntos: 5
Respuesta: Parar 2 segundos un proceso

Existe la llamada sleep() que permite "dormir" un proceso. La única pega es que no es multiplataforma, depende del sistema en el que estes.

En Linux:

Código C:
Ver original
  1. #include <unistd.h>
  2. #include <stdio.h>
  3.  
  4. int main() {
  5.     printf("dormir durante 3 segundos..\n");
  6.     sleep(3);   // Tiempo en segundos, otra forma es con: usleep(microsegundos)
  7.     printf("acabado\n");
  8. }

En Windows:

Código C:
Ver original
  1. #include <windows.h>
  2. #include <stdio.h>
  3.  
  4. int main() {
  5.     printf("dormir durante 3 segundos..\n");
  6.     Sleep(3000);   // Recibe milisegundos: 3 segundos = 3 milisegundos
  7.     printf("acabado\n");
  8. }

Saludos ;)
  #3 (permalink)  
Antiguo 21/01/2015, 09:30
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Parar 2 segundos un proceso

Gracias!
El sleep libera el uso de CPU? quiero evitar que ocurra el watchdog porque un proceso ha bloqueado el uso de la CPU durante demasiado tiempo.

Un saludo
  #4 (permalink)  
Antiguo 21/01/2015, 12:36
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Parar 2 segundos un proceso

Sabeis si la funcion nanosleep devuelve el control de la CPU para que sea usada para otro proceso???

No quiero dejar parado el sistema entero 2 segundos, solo ese proceso.
  #5 (permalink)  
Antiguo 21/01/2015, 18:38
lareto
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Parar 2 segundos un proceso

En C++11:

std::this_thread::sleep_for (std::chrono::seconds(2));
  #6 (permalink)  
Antiguo 22/01/2015, 04:48
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 12 años, 4 meses
Puntos: 28
Respuesta: Parar 2 segundos un proceso

Cita:
Iniciado por Zunri Ver Mensaje
Gracias!
El sleep libera el uso de CPU? quiero evitar que ocurra el watchdog porque un proceso ha bloqueado el uso de la CPU durante demasiado tiempo.

Un saludo
Sí, sleep libera el uso de la CPU. Y cualquier variación de sleep que te encuentres hará lo mismo.

Etiquetas: parar, proceso, segundos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:22.