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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Русские символы в качестве аргумента system() 
:(
    Опции темы
rudolfninja
Дата 16.5.2015, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Привет всем.
Ребят, помогите решить такую проблему. Мне надо из приложения запустить функцию system(), аргументами которой будет путь к файлу, содержащему русские символы. С версией system() это не работает.
Если передаю аргументы только с англ. строкой, то все ок. Если в имени файла встречается русский символ, то system его не может нормально обработать. Не подскажете, как можно решить эту проблему?
Вообще, задача такова: рядом с моим исполняемым файлом есть исполняемый файл, например, test.exe. Мне надо с моего приложения вызвать test.exe c аргументом, указывающим на файл. Как это можно еще сделать если не через system()?

Спасибо.
PM MAIL Skype   Вверх
Cheloveck
Дата 16.5.2015, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 3
Всего: 32



Использование system -- не лучшая практика.

Windows: https://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx
UNIX: http://pubs.opengroup.org/onlinepubs/7908799/xsh/fork.html + http://pubs.opengroup.org/onlinepubs/00969...tions/exec.html
Если исользуешь какие-нибудь тулкиты, типа boost, Qt или GTK+, то там есть свои кроссплатформенные функции.


--------------------
user posted image
PM Jabber   Вверх
rudolfninja
Дата 16.5.2015, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Цитата(Cheloveck @  16.5.2015,  16:27 Найти цитируемый пост)
Если исользуешь какие-нибудь тулкиты, типа boost, Qt или GTK+, то там есть свои кроссплатформенные функции

Как раз Qt и использую.
Не подскажете, как в нем можно своими средствами выполнить мою задачу?
Спасибо.
PM MAIL Skype   Вверх
Cheloveck
Дата 16.5.2015, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 3
Всего: 32





--------------------
user posted image
PM Jabber   Вверх
rudolfninja
Дата 16.5.2015, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Что-то не срабатывает QProcess
Через system делаю так:
Код

QString cmd = exe_file_path + "/abiword/abiword --to=txt -o " + temp_file + " " + fileName;
system(cmd.toStdString.c_str());


Через QProcess:
Код

QProcess abiword;
QStringList arguments;
arguments << "--to=txt" << "-o" << temp_file << fileName;
abiword.start(exe_file_path + "/abiword/abiword", arguments);
if(!abiword.waitForStarted())
            qDebug() << "not started";
        else
            qDebug() << "started";
        abiword.waitForFinished();

Процесс запускается, вот аргументы, вроде как, не передаются в него, т.к. нужного файла не появляется.
PM MAIL Skype   Вверх
feodorv
Дата 16.5.2015, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 11
Всего: 45



Создайте программу, которая просто печатает передаваемые ей аргументы, байт в байт. Подсуньте её вместо своей программы. Посмотрите на вывод. Скорее всего, дело в кодировках.

Добавлено через 55 секунд
Или в пробелах в именах файлов/директорий...


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.