Здравствуйте 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 стоит на начале строки). Вот этот метод и грузит проц — проверял.