Хорошо, у меня есть две программы, и одна вызывает другую, используя исполняемый файл другой.
Я использую его на терминале Ubuntu
Это структура папок на месте
... / SRC / PGM1 / PGM1
... / SRC / pgm0 / pgm0
pgm1 и pgm0 являются исполняемыми файлами.
Так я называю другой исполняемый файл
</p>
char cmd[1000];
string path = "/home/usr/src/";
// call pgm0 for each instance...
sprintf( cmd, "../pgm0/pgm0 xRes 400 xRes 400 inFile tmp_output/%s.%04d.sc > tmp_output/%s.%04d.ppm", g_outFile.c_str(), ti, g_outFile.c_str(), ti);
cout << cmd << endl;
system (cmd);
....
Я посмотрел и cmd генерируется правильно:
../pgm0/pgm0 yRes 400 xRes 400 inFile tmp_output / sph0.0000.sc> tmp_output / sph0.0000.ppm
Так что, если я запускаю эту команду из командной строки, она отлично работает.
Если я запускаю его с помощью системного вызова, он зависает и не может проанализировать входной файл sph0.0000.sc
Я попытался добавить полный путь (следовательно, переменная пути вверх)
Но все равно не повезло.
Любые идеи, почему это будет работать из командной строки, а не из системного вызова в другом исполняемом файле ...
Просто чтобы прояснить это работает из командной строки в папке pgm1.
Спасибо