Russian Qt Forum
Июнь 15, 2024, 23:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Вивести файл в консоль  (Прочитано 10963 раз)
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #15 : Сентябрь 25, 2012, 15:48 »

И зачем для этого тебе понадобилась консоль Непонимающий
Записан

Qt 5.11/4.8.7 (X11/Win)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #16 : Сентябрь 25, 2012, 15:57 »

tail -f работает в режиме реального времени.
Но тут tail совсем не нужен.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Ubuntu_linux
Гость
« Ответ #17 : Сентябрь 25, 2012, 16:04 »

tail -f работает в режиме реального времени.
Но тут tail совсем не нужен.

неа
 man tail
.......
--sleep-interval=N
     Change the number of seconds to wait between iterations (the
     default is 1
).  During one iteration, every specified file is
     checked to see if it has changed size.
.......

И как тут обойтись  без tail ?
« Последнее редактирование: Сентябрь 25, 2012, 16:06 от Ubuntu_linux » Записан
Ubuntu_linux
Гость
« Ответ #18 : Сентябрь 25, 2012, 16:12 »

И зачем для этого тебе понадобилась консоль Непонимающий
Чтобы передать поток с файла в ffmpeg  по мере того как он загружается.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #19 : Сентябрь 25, 2012, 19:06 »

И зачем для этого тебе понадобилась консоль Непонимающий
Чтобы передать поток с файла в ffmpeg  по мере того как он загружается.

Создай FIFO, и пиши загружаемые данные в него.  Этот FIFO передай ffmpeg через пайп (|)
« Последнее редактирование: Сентябрь 25, 2012, 19:15 от Alex Custov » Записан
Ubuntu_linux
Гость
« Ответ #20 : Сентябрь 25, 2012, 19:26 »

И зачем для этого тебе понадобилась консоль Непонимающий
Чтобы передать поток с файла в ffmpeg  по мере того как он загружается.

Создай FIFO, и пиши загружаемые данные в него.  Этот FIFO передай ffmpeg через пайп (|)

Можно пример?
Записан
VPS
Гость
« Ответ #21 : Сентябрь 25, 2012, 19:57 »

Можно попробовать использовать перенаправление буфера файлового потока в нужный поток:
Код:
ifstream ifs("file_name", ios::binary);
assert(ifs);
cout << ifs.rdbuf();
Записан
Patrin Andrey
Гость
« Ответ #22 : Сентябрь 25, 2012, 20:09 »

При такой схеме (прога-файл-ффмпег) вероятнее всего(рано или поздно) возникнет проблема, что ты ещё не успел записать в файл, а ффмпег уже дошёл до конца файла и прекратит попытки прочитать следующую порцию данных.
Как дела обстоят в этом случае с пайпами не знаю, но есть вероятность что попытается подождать.
Записан
Ubuntu_linux
Гость
« Ответ #23 : Сентябрь 26, 2012, 01:18 »

При такой схеме (прога-файл-ффмпег) вероятнее всего(рано или поздно) возникнет проблема, что ты ещё не успел записать в файл, а ффмпег уже дошёл до конца файла и прекратит попытки прочитать следующую порцию данных.
Как дела обстоят в этом случае с пайпами не знаю, но есть вероятность что попытается подождать.
Получилось, но теперь проблема с "...не успел записать в файл, а ффмпег уже дошёл до конца файла и прекратит попытки прочитать следующую порцию данных"
Хотя с прогой tail все четко успевало..
А как прикрутить пайпы?

void Data::printData(){
    if(!isDebug){
    ifstream ifs(m_path.toAscii()+m_name.toAscii(),ios_base::binary);
    //assert(ifs);//?
    ifs.seekg(lastPos);
    cout<<ifs.rdbuf();
    lastPos=ifs.tellg();
    ifs.close();
    }//debug
    else{
        printf("Same rand number: %ld \n",rand());}
}//printData
« Последнее редактирование: Сентябрь 26, 2012, 01:21 от Ubuntu_linux » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.062 секунд. Запросов: 22.