Latest post of the previous page:
Это вопрос или ответ на вопрос?Tee.exe - дублирование консольного вывода в текстовый файл
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: Продублировать консольный вывод в текстовый файл
В правильных реализациях tee — вывод на stdout уходит сразу, как только пришёл с stdin.
Re: Продублировать консольный вывод в текстовый файл
это утверждение, что tee не решает проблему, а если поведение tee — искомое, то вместо tee можно использовать вышеприведенный фрагмент.
короче, tee — не нужна.
или я что-то не понял? (это вопрос)
короче, tee — не нужна.
или я что-то не понял? (это вопрос)
Фар делают добрые люди
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Продублировать консольный вывод в текстовый файл
Ну, вам уже ответили. В случае:
Вывод в консоль идет без задержки, параллельно выводу в лог. Мне так и нужно было.build.bat | tee build.log
Re: Продублировать консольный вывод в текстовый файл
ага. с батником работает, но с дискретностью вызовов программ внутри батника. так что ваша проблема действительно решается. а мне нужно было, чтобы вывод одной программы выводился в процессе, а не в конце.
пробовал две реализации. или ограничения винды, или не нашел Самую Правильную Реализацию.
пробовал две реализации. или ограничения винды, или не нашел Самую Правильную Реализацию.
Фар делают добрые люди
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Продублировать консольный вывод в текстовый файл
Не уверен, что правильно понял фразу:
но, замечу, что когда я вызываю компилятор, то его вывод (ворнинги и пр.) появляются сразу, а не по окончании процесса компиляции.ccaid wrote:с дискретностью вызовов программ внутри батника
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: Продублировать консольный вывод в текстовый файл
ccaid
Попробовал dir /s | tee dirs.txt, и убедился что вывод происходит параллельно, а вовсе не в конце.
Даже если dir.cmd батник.
Попробовал dir /s | tee dirs.txt, и убедился что вывод происходит параллельно, а вовсе не в конце.
Даже если dir.cmd батник.
Re: Продублировать консольный вывод в текстовый файл
ок, уточнил происходящее. дискретность вывода походу определяется размером буфера stdout. и вывод компилятора с кучей ворнингов, и вывод dir'а — информация выводится быстро и помногу, буфер быстро наполняется, и вывод на экран (и в файл) тут же происходит. а я бьюсь с противоположной ситуацией. считаются контрольные суммы объемистых файлов (исошки) — одна строчка в несколько минут. когда-то буфер наполнится… быстрее весь процесс завершится.
Фар делают добрые люди
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Re: Продублировать консольный вывод в текстовый файл
По идее, когда стандартный вывод направлен на консоль или в конвейер, сишный рантайм должен сбрасывать буфер в конце каждой строки. В других языках может понадобиться дёргать flush ручками.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: Продублировать консольный вывод в текстовый файл
tee из ReactOS
- Attachments
-
- tee_ReactOS.zip
- (7.99 KiB) Downloaded 250 times
Re: Продублировать консольный вывод в текстовый файл
чайный хит-парад (предположительный размер буфера):
в папке с 125 файлами общим размером 860 611 158 байт запускалась команда: fsum * | <some_tee> t.log
дожидался первой паузы в выводе и жал CtrlC. размер файла t.log фиксировался в таблице хит-парада.
устойчивость результата проверял несколькими запусками (и подряд, и не подряд, и на другом наборе файлов)
а дело было под W7HB x64
Code: Select all
tee32 3629
UnxUtils tee 4096
GNU tee 4147
mtee 4147
ReactOS tee 4147
PowerShell tee 8202
дожидался первой паузы в выводе и жал CtrlC. размер файла t.log фиксировался в таблице хит-парада.
устойчивость результата проверял несколькими запусками (и подряд, и не подряд, и на другом наборе файлов)
а дело было под W7HB x64
Фар делают добрые люди
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: Продублировать консольный вывод в текстовый файл
http://david.tribble.com/programs.html: tee.exe
Code: Select all
Options:
...
-n Flush output after newlines.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Продублировать консольный вывод в текстовый файл
Чай - это tea. А tee - это T-коннектор, разветвитель.ccaid wrote:чайный хит-парад
Re: Продублировать консольный вывод в текстовый файл
«здесь это не работает» — 4096 без -n и плавающее значение ~4149-4168 с -nJohn Doe wrote:http://david.tribble.com/programs.html: tee.exe
-n Flush output after newlines.
Max Rusov
лучше — тройник.
называется: игра слов
Фар делают добрые люди