Мне нужно запустить программу через 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)