crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> После запуска процесса в 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  


Цитата(Kagami @ 18.12.2010, 23:11) *
А что за программа запускается? С какими аргументами? Для понимания того, что с этой программой происходит можно посмотреть что она выводит в 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  


Цитата(PAFOS @ 27.12.2010, 20:00) *
В аргументах запуска первым параметром идет имя самой программы... Может быть в этом дело?

Простите, не отписался здесь: всё уже решено. Всё уже нормально запускается. Вариант запуска "программа, аргументы" не очень хорошо работает: Qt как то неправильно их парсит. А вот "программа + аргументы" одной строкой работает отлично. Проблема была в native separators в имени программы и в аргументах, поправил для каждой из ОС корректно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 0:22