После запуска процесса в QProcess программа не работает, Linux |
Здравствуйте, гость ( Вход | Регистрация )
После запуска процесса в QProcess программа не работает, Linux |
AlekseyK |
18.12.2010, 23:03
Сообщение
#1
|
Студент Группа: Участник Сообщений: 22 Регистрация: 9.11.2010 Пользователь №: 2176 Спасибо сказали: 0 раз(а) Репутация: 0 |
После запуска процесса в QProcess программа не работает. ps -xaw говорит, что программа находится в спящем режиме (S - Interruptible sleep (waiting for an event to complete)). Почему такое может быть? Не может ли подобное возникнуть в Маке, винде? Как это лечить?
Это по start(), а по execute() работает. Почему такая дискриминация? |
|
|
Kagami |
19.12.2010, 0:11
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
А что за программа запускается? С какими аргументами? Для понимания того, что с этой программой происходит можно посмотреть что она выводит в stderr и stdout.
|
|
|
AlekseyK |
19.12.2010, 1:09
Сообщение
#3
|
Студент Группа: Участник Сообщений: 22 Регистрация: 9.11.2010 Пользователь №: 2176 Спасибо сказали: 0 раз(а) Репутация: 0 |
А что за программа запускается? С какими аргументами? Для понимания того, что с этой программой происходит можно посмотреть что она выводит в stderr и stdout. Да vlc запускается, не в ней дело: из консоли нормально работает. Командная строка в порядке: Цитата Command:"vlc" Arguments: "screen:// --one-instance -I dummy --no-video :screen-fps=5 :screen-caching=300 --screen-follow-mouse :screen-mouse-image="/path-to-mouse-pointer/mouse_pointer.png" --sout "#transcode{vcodec=h264,vb=400,fps=5,scale=1,width=1280,height=1024,acodec=n one}:duplicate{dst=std{access=file,mux=avi,dst="/path-to-video/TD_video.avi"}}" --run-time=1210" QStringList для аргументов получается через .split(" "). и execute как-то некорректно работает: та же команда в консоли отрабатывает отлично, а через execute: Цитата [0x8247bf4] main stream out warning: missing value for option mux [0x8247bf4] main stream out warning: missing value for option access [0x8247bf4] main stream out warning: option transcode is unknown [0x8247bf4] main stream out warning: option home/alex/Work/Intelligence/Test/screencast_test-build-desktop/TD_video.avi" is unknown [0x8247bf4] stream_out_standard stream out error: no mux specified or found by extension [0x82477e4] main stream output error: stream chain failed for [0x80ecba4] main input error: cannot start stream output instance, aborting [0x8247174] main stream out warning: missing value for option mux [0x8247174] main stream out warning: missing value for option access [0x8247174] main stream out warning: option transcode is unknown [0x8247174] main stream out warning: option path-to-video/TD_video.avi" is unknown [0x8247174] stream_out_standard stream out error: no mux specified or found by extension будто параметры как-то некорректно передаются, парсятся. int QProcess::execute ( const QString & program ) корректно отрабатывает, int QProcess::execute ( const QString & program, const QStringList & arguments ) - нет. Ха, void start ( const QString & program, OpenMode mode = ReadWrite ) - тоже корректно работает. Очень странно, видимо Qt как-то неправильно запускает процесс, если указаны аргументы, хотя ps -xaw показывает, что они правильные и программа с ними корректно работает из консоли. |
|
|
PAFOS |
27.12.2010, 20:00
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
В аргументах запуска первым параметром идет имя самой программы... Может быть в этом дело?
|
|
|
AlekseyK |
27.12.2010, 20:07
Сообщение
#5
|
Студент Группа: Участник Сообщений: 22 Регистрация: 9.11.2010 Пользователь №: 2176 Спасибо сказали: 0 раз(а) Репутация: 0 |
В аргументах запуска первым параметром идет имя самой программы... Может быть в этом дело? Простите, не отписался здесь: всё уже решено. Всё уже нормально запускается. Вариант запуска "программа, аргументы" не очень хорошо работает: Qt как то неправильно их парсит. А вот "программа + аргументы" одной строкой работает отлично. Проблема была в native separators в имени программы и в аргументах, поправил для каждой из ОС корректно. |
|
|
Текстовая версия | Сейчас: 13.12.2024, 0:42 |