duda boba de programacion (c)

a ver

yo quiero hacer que un cliente espere a que un server cambie el valor de una de sus variables

tonces quiero hacer como un while hasta que se cambie esa condicion y dentro un for infinito que saque...
esperando tu turno.
y meta un punto cada vez... . . . .

lo que digo es que si el for infinito esta dentro del while... el while mira cada ejecucion a ver si se ha cambiao la condicion no?

Pd: a algunos os parecera chorrada y lo es lo se... pero tengo un empanamiento en la cabeza... muy serio.
y para que necesitas dos bucles? Puedes usar usleep() para detener la ejecucion durante un periodo determinado de tiempo. Tambien, si tienes un modelo cliente servidor para esas cosas podrias usar select(), teniendo un socket donde el servidor manda una señal con el valor de la variable y si hace falta con un timeout (mirate el man de ambas funciones)

Saludos
No hagas el for infinito porque no saldras nunca de ahí. Si el for está dentro del while, hasta que no termine, el while no vuelve a preguntar... y si el for no termina, dificilmente preguntara el while.

Haz que que el "." se escriba hasta que la condicion del while se cumpla, sin meter ningún for.

Un saludo!

PD: espero no estar muy equivocado, porque la programación la tengo algo dejada desde hace 2 años jejeje...

PD2: que bonitas las clases de introduccion a la programación de la universidad... si señor, bonitas a la par que inútiles ^_^U

edito: como Raharu ha contestado mientras yo escribia... ejem, y se nota que sabe mas que yo jejejeje... mejor no me hagas caso [ginyo]
tonces quiero hacer como un while hasta que se cambie esa condicion y dentro un for infinito que saque...

si el for es infinito no para nunca

Deberias menter una espera con un for de un numero adeacuado
o mejor aun usando una llamada de espera como
sleep.

Pero lo suyo es usar semaforos
printf("esperando respuesta del server");

while (mensaje!="TURN")
{
for (int i =0;i<100000;i++){
printf(". ");
sleep(2);
}
}

¿algo asi?
El sleep (2) son 2 segundos (creo)

solo con el sleep te sobra

O pones el sleep o el bucle
Escrito originalmente por Harl
El sleep (2) son 2 segundos (creo)

solo con el sleep te sobra

O pones el sleep o el bucle


explikame eso
que no me entero
El bucle da 100 000 vueltas y en cada
una esperas 2 segundos
O sea 55 Horas XD

sleep [--help] [--version] numero[smhd]...

DESCRIPCION
Esta documentacion no sera mantenida y puede ser inexacta o incompleta.
La documentacion Texinfo es ahora la fuente autorizada.

Esta pagina de manual documenta la version GNU de sleep. sleep detiene
durante un tiempo especificado por la suma de los valores de los argue-
mentos de la linea de comando. Cada argumento es un numero seguido por
una unidad opcional; por defecto es segundos. Las unidades son:

s segundos

m minutos

h horas

d dias


Segundos es la unidad minima para sleep.

Con que pongas sleep (1) dentro del while ya espera lo suficente
ah bien solo cambiar eso... es que te entendi suprimir un bucle... y eso ya me dejaba sin hacer una de las dos cosas...


no calcule el tiempo...XDXD
me da este error raro al compilar

error:for loop initial declaration used outside C99 mode

edito: como se nota que empanamiento tengo
si lo que quiero lo hago asi de sencillo

printf("esperando respuesta del server");
while (mensaje!="TURN"){
printf(". ");
sleep(1);
}
¿has añadido
#include
al principio del archivo?


(nunca viene mal)
10 respuestas