Я запускаю программу, в которой заданные точки выполняют system
вызов, чтобы сжать некоторые файлы.
Первый раз, когда он работает правильно, но в следующий раз (и в следующие) он завершается неудачно с код ошибки -1.
sprintf(zip, "zip -q -T -m -r %s/datsiter%d.zip %s/*%d.dat", dir, it_number, dir, it_number);
ierr = system(zip);
printf("Output:%s %d\n ",zip, ierr);
Вывод:
Output:zip -q -T -m -r results/datsiter0.zip results/*0.dat 0
Output:zip -q -T -m -r results/datsiter1.zip results/*1.dat -1
Output:zip -q -T -m -r results/datsiter2.zip results/*2.dat -1
Если после запуска я выполняю команды вручную, он работает как положено.
РЕДАКТИРОВАТЬ Следуя предложению kaylum, я добавил perror("Error: ");
сразу после system
call и получил ключ. Хороший Cannot allocate memory
, который мне придется тщательно проверить, так как я работаю в кластере с системой очередей.