Мне нужно запустить программу через execvp(). Команда хранится в QString. Необходимо разделить ее на две части, если передается параметр (на саму команду и параметр). Средствами QT не удалось. Я находил индекс пробела, но вот скопировать в строку из другой строки с n-го по m-й символ так и не смог. Решил сишными функциями. Разделить на лексемы strtok() не хочет. Введя were wolf выдает were were. Помогите (жедательно через методы QString) разделить строку на команду и аргумент (последний может и не вводиться). Вот как я делал в последнем случае: char *command = new char [255], *argument = new char [255], *buf = new char [255], *space = " "; int res = 0; if ( !(fork())){ QMessageBox::information(this, "Error", QString("Process not created: %1").arg(errno), 0); exit(0); } strcpy(buf, this->com_e->currentText().ascii()); strcpy( command, strtok( buf, " ")); printf("\nCommand: %s", command); strcpy( argument, strtok( buf, " ")); printf("\nArgument: %s\n", argument); if (execvp( command, argument) == -1){ QMessageBox::information(this, "Error", QString("Program not started: %1").arg(errno), 0); exit(0); }
Ответ на:
комментарий
от phoenix
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум execvp (2005)
- Форум mount ругается (2005)
- Форум Работа с сокетами в C (2010)
- Форум познать дзен popen() (2013)
- Форум Не могу разобраться с ошибкой сегментирования (2017)
- Форум C++, шаблон (2009)
- Форум сваливается send (сокет) (2008)
- Форум Помогите разобраться с sendto (2014)
- Форум помогите немогу понять куда девается stdout (2009)
- Форум Разработка своего shell'a (2012)