2013-08-24 2 views
-3

Как вы можете создать программу на языке C, которая ждет ввода пользователя в течение определенного количества секунд? По истечении срока действия программа закрывается, с или без ввода. Образец кода, пожалуйста, используйте fork() и sleep(). Извините, я новичок в этом.Программа C, которая ждет ввода пользователем определенного количества секунд

Whoa. Извините ребята. Это не мой пост. Похоже, кто-то использовал мою учетную запись. И я не могу удалить его.

+3

«Пример кода, пожалуйста» - Нет, переполнение стека не работает таким образом. –

+0

Также обман: http://stackoverflow.com/q/18289635/694576 – alk

ответ

1

Если вы просто хотите сесть программу и ждать ... Сделайте проверку цикла для ввода, используйте сохранить время начала часов в переменной. Обновите время окончания. Проверьте цикл, если время (здесь 5 секунд) истекло.

begin_t = clock(); 

// do-loop 

    /* read user input*/ 
    end_t = clock(); 
// while(end_t - begin_t < 5 * CLOCKS_PER_SEC) 
1

По-моему, usng fork() и sleep() не лучший способ достичь такого результата. Гораздо лучше использовать вызов select(), который позволяет подождать данные с таймаутом.

См. the unix manual page on select() для примера примерного кода.

1

Правильный способ сделать это - выбрать STDIN для чтения и установить тайм-аут для любого долгого времени. Select будет возвращать STDIN как доступный для чтения или возврата ничего, что указывает на таймаут.

http://linux.die.net/man/2/select

Смежные вопросы