Я хочу использовать spawnl для восстановления сеанса терминала DOS после завершения приложения, я делаю следующее:
static char* pszMode = "mode.com";
int intRC = spawnl(P_WAIT, pszMode, pszMode, "co80", NULL);
char szCOM2setup[80];
sprintf(szCOM2setup, "%s:9600,n,8,1", clsPort::mpcszCOM2);
intRC = spawnl(P_WAIT, pszMode, pszMode, szCOM2setup, NULL);
mpcszCOM содержит COM2
В обоих случаях intRC содержит -1, у меня одношаговое выполнение и не похоже, что эти команды выполняются должным образом, что я не сделал?
Я использую ROM-DOS версии 6.22 на встроенной платформе PC104.
Я проверил с perrror и с помощью strError, фактическая ошибка:
No such file or directory
Но почему? Путь устанавливается до запуска приложения, и mode.com доступен из командной строки в той же папке, что и приложение.
Пробовал использовать spawnlp вместо spawnl, лучше не будет той же ошибки.
По причине, которую я не понимаю, даже если путь настроен правильно, приложение возвращало «Нет такого файла или каталога», поэтому я изменил приложение, добавив путь, и это решило проблему.
Других решений пока нет …