Re[2]: Определение наличия данных в stdin
От: kong Украина  
Дата: 12.09.02 06:14
Оценка:
Здравствуйте Anatolix, Вы писали:

A>Здравствуйте kong, Вы писали:


K>>Есть такая проблемка: пишется прога, которая забирает данные по конвееру из сислога. Для этого надо определять есть ли данные в stdin. Если просто опрашивать stdin, то прога сильно грузит процессор. Нужен совет как сделать так, чтобы прога находилась в спящем режиме, а при поступлении данных в stdin — просыпалась.


A>А помоему тебе надо просто читать из stdin и когда в нем не будет данных

A>твою прогу забликируют до их поступления
A>т.е. когда ты делаешь cin >> s; прога ведь ждет пока ты что-то наберешь

Да дело в том что я пишу на чистой сюхе, а вроде cin >> s это уже С++. Данные у меня идут сроками, причем строки не фиксированной длины (от 25 символов и до ...). Для этого я сначала определяю длину строки в stdin (функция
pStr_stdin = fgetln(stdin, &SyslogStr_len)), а потом просто копирую ее в свой локальный буфер (указатель pStr_stdin стоит на начале строки). Вот этот метод и грузит проц — проверял.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.