The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"sleep() в FreeBSD"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"sleep() в FreeBSD"
Сообщение от dv1983 emailИскать по авторуВ закладки(ok) on 06-Авг-04, 03:53  (MSK)
Программка, которая просто выводит нарастающий каждую секунду прогресс-бар:
#include <unistd.h>

int main() {
  int i,j;
  printf("Let's doing nothing:\n\n");
  for (i=0;i<100;i++) {
    printf("\rDoing nothing: ");
    for (j=0;j<(i/2);j++) printf("#");
    for (j=(i/2);j<100;j++) printf(" ");
    printf(" %d%",i);
    sleep(1); //<-- одна секунда
  }
  printf("\n");
  return 0;
}

Однако на функции sleep она зависает, и ей только помогает ^C. Понять не могу что здесь не так... Буду рад любому совету и ни на кого не обижусь :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "sleep() в FreeBSD"
Сообщение от diam Искать по авторуВ закладки(??) on 06-Авг-04, 07:49  (MSK)
>Программка, которая просто выводит нарастающий каждую секунду прогресс-
бар:
Я написал, всё работает. :)
#include <unistd.h>

int main()
{
    int i,j;
    printf("Let's do nothing\n");
    for (i=0;i<100;i++)
    {
        printf("Do nothing: ");
        for (j=0;j<(i/2);j++)
        {
            printf("#");
        }
        for (j=(i/2);j<100;j++)
        {
            printf(" ");
        }
        printf("%d\n",i);
        sleep(1);
    }
    printf("\n");
    return 0;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "sleep() в FreeBSD"
Сообщение от dv1983 emailИскать по авторуВ закладки(??) on 06-Авг-04, 23:14  (MSK)
>>Программка, которая просто выводит нарастающий каждую секунду прогресс-
>бар:
>Я написал, всё работает. :)
>#include <unistd.h>
>
>int main()
>{
>    int i,j;
>    printf("Let's do nothing\n");
>    for (i=0;i<100;i++)
>    {
>        printf("Do nothing: ");
>        for (j=0;j<(i/2);j++)
>        {
>            
>printf("#");
>        }
>        for (j=(i/2);j<100;j++)
>        {
>            
>printf(" ");
>        }
>        printf("%d\n",i);
>        sleep(1);
>    }
>    printf("\n");
>    return 0;
>}


Да и у меня тоже :) Посидел, поковырялся... добавил fflush(stdout); и stdio.h вместо unistd.h - вот и вся беда... буфера не скидываются, sleep  не зависает... ох и проблема же :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру