Tprocess и ps -lax

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

Tprocess и ps -lax

Сообщение the_beginer » 10.09.2009 16:23:58

Доброго времени суток!
Давно я не был здесь, да и вообще за компьютером - сын у меня родился :)

Но вот после долгого перерыва я снова сел за программирование.
И почти сразу натолкнулся на такую вот проблему.

Есть задача: надо программно получить вывод команды
Код: Выделить всё
ps -lax

Это полная информация с процессах, запущенных в системе. Причем запущенные процессы, что важно для меня, показываются полностью, т.е. полный путь до файла + параметры. (далее полный путь)

казалось бы чего проще, ан нет. Нашел-таки пару подводных камней.
Итак, используем tprocess
Код: Выделить всё
uses ...  , process, CLASSES;
....
var AProcess : tprocess;
    astringlist : tstringlist;
...
begin
s := 'ps -lax';
AProcess := TProcess.Create(nil);
AProcess.CommandLine := s;
AProcess.Options := AProcess.Options + [powaitonexit, pousepipes];
AProcess.Execute;     
AStringList.LoadFromStream(Aprocess.output);
AProcess.free;

далее раскидываем итог по по ячейкам stringgrid ...


и получаем итог. В колонке, где отображается полный путь, вписываются только первые 11 символов, остальное отбрасывается (рис1).

Честно, я долго игрался с этим куском. Однако, победить не смог.
Может, подскажите, в чем причина и как исправить?
Вложения
ris1.png
рис 1
the_beginer
новенький
 
Сообщения: 30
Зарегистрирован: 29.05.2008 16:51:51

Re: Tprocess и ps -lax

Сообщение frost_asm » 11.09.2009 00:26:43

Методом проб вияснилось что виноват gdb. Если отключить его в опциях IDE, то должно отображатся нормально. Или запускать не из IDE.
frost_asm
новенький
 
Сообщения: 26
Зарегистрирован: 28.12.2008 22:40:36

Re: Tprocess и ps -lax

Сообщение the_beginer » 11.09.2009 05:14:04

хм, действительно. Запомним на будущее, что результат работы через IDE и из консоли может отличаться.
frost_asm, спасибо

Стоит ли писать Мартину?
the_beginer
новенький
 
Сообщения: 30
Зарегистрирован: 29.05.2008 16:51:51

Re: Tprocess и ps -lax

Сообщение Dmitry » 11.09.2009 10:33:55

Насколько я помню, можно добавить еще ключик -w, чтобы список процессов не обрезался по длине строки. По крайней мере во FreeBSD так работает.
Dmitry
новенький
 
Сообщения: 52
Зарегистрирован: 05.07.2005 08:53:06


Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru