Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Вниз

Как прочитать из stderr?   Найти похожие ветки 

 
kull   (2003-11-10 12:17) [0]

Надо запустить exe файл, который пишет в stderr, и потом прочитать все, что он написал туда.

Как сделать?


 
Zergling   (2003-11-10 12:41) [1]

Надоже какой интересный вопрос. Как файл то запустить? Да и еще прочитать неизвестно что в неизвестно куда записанное.
Может разжуешь?


 
gek   (2003-11-10 12:47) [2]

Ну так он же написал

> Надо запустить exe файл, который пишет в stderr, и потом
> прочитать все, что он написал туда.


Значит надо запускать, тут никуда не деться.
Вопрос в том как прочить оттуда все, что он написал туда.

Вот это настоящая загадка


 
Anatoly Podgoretsky   (2003-11-10 13:24) [3]

Вместо STD_OUTPUT_HANDLE использовать STD_ERROR_HANDLE


 
willys   (2003-11-10 13:32) [4]

http://www.delphikingdom.com/mastering/std.htm


 
Zergling   (2003-11-11 07:27) [5]

А, вот кто такой stderr.
Sorry автору ветки.


 
Dimka Maslov   (2003-11-11 08:39) [6]

В глупых сях, рассчитанных на консольный режим раобты есть два потока вывода stdout (в паскале эквивалент переменной Output, в Delphi - то куда выводит информацию Writeln в консольных приложениях). А также stderr - поток вывода, в который записываются сообщения об ошибках, по умолчанию то же что и stdout). Ни в паскале ни в Delphi аналога этому рудименту нет, но "стандарт языка си" требует его поддержки.


 
Юрий Зотов   (2003-11-11 09:19) [7]

> kull © (10.11.03 12:17)

1. Заполняете TSecurityAttributes, разрешая наследование (последнее поле можно ставить в nil).
2. С этой TSecurityAttributes вызываете CreateFile и запоминаете полученный хэндл.
3. Заполняете TStartupInfo, указав этод хэндл в поле STD_ERR и включив во флаги USE_STD_HANDLES (поля STD_IN и STD_OUT можно заполнить вызовом GetStdHandle).
4. Вызываете CreateProcess с разрешением наследования хэндлов.

И в результате StdErr будет перенаправлен в Ваш файл. Аналогичным образом, вместо файла можно использовать канал (Pipe) - тогда вывод пойдет прямо в Вашу программу, а там уже можете его хоть в Memo выбрасывать.


 
willys   (2003-11-11 14:07) [8]

> Dimka Maslov © (11.11.03 08:39) [6]
ну вообше-то, stderr - это объект операционной системы, представляющий собой (с точки зрения программы) самый обычный текстовый файл. т.е. к "глупым сям" он имеет не больше отношения, чем какой-нибудь CreateWindow или SendMessage.


 
kull   (2003-11-12 15:36) [9]

Спасибо willys и Юрию Зотову, ну и всем остальным...


 
kull   (2003-11-12 15:40) [10]

Прошу извинить за глупый вопрос, но как мне получить Exit Code запущенного exe-шника?


 
Digitman   (2003-11-12 15:45) [11]

действительно - глупый

потому как хэлп при попытке хоть сколь либо пошевелить мозгами тут же выкидывает инф-цию :

GetExitCodeProcess()


 
kull   (2003-11-12 15:57) [12]


> Digitman © (12.11.03 15:45) [11]

Thanks.
PS:А вообще-то глупых вопросов нет. Есть глупые ответы.


 
Digitman   (2003-11-12 16:00) [13]

никак задело ?)
надо же)


 
kull   (2003-11-12 16:14) [14]

Удалено модератором
Примечание: Начинать с себя и без искажений ников


 
kull   (2003-11-12 16:19) [15]

Удалено модератором
Примечание: Повторение приведет другим последстивиям и не трогай модератора, болше предупреждений не будет.


 
kull   (2003-11-12 16:23) [16]

Удалено модератором


 
Digitman   (2003-11-12 16:26) [17]


> kull


это уж будь любезен в "Потрепаться" поплакаться на мою якобы "жесткость") ... ничего против не имею))))


 
kull   (2003-11-12 16:27) [18]

Удалено модератором
Примечание: Ну что ж, отдохка, пока добровольно в течении 1 суток и не думай нарушать режим


 
Digitman   (2003-11-12 16:28) [19]


> kull


там же, в "Потрепаться", я и вспомню все твои амбициозные выпады в адрес местного люда... коль осмелишься тему поднять)) ... уверяю - мягко-мягко так "вспомню")))


 
kull   (2003-11-12 17:34) [20]

Удалено модератором



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.011 c
14-79182
Soft
2003-10-25 01:29
2003.11.24
Есть ли смерть после жизни?


1-78984
qwe
2003-11-14 13:04
2003.11.24
как изменить высоту заголовка в TListView??


6-79082
Sergioly
2003-09-28 03:02
2003.11.24
Как осуществить копирование файлов с другого компьютера?


14-79158
ИдиотЪ
2003-10-31 11:09
2003.11.24
откуда берутся идиоты?


1-78916
killer
2003-11-12 16:10
2003.11.24
Где можно скачать RXLib для Delphi7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский