C сбой системного вызова со второго раза - PullRequest
0 голосов
/ 04 марта 2020

Я запускаю программу, в которой заданные точки выполняют 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, который мне придется тщательно проверить, так как я работаю в кластере с системой очередей.

1 Ответ

0 голосов
/ 05 марта 2020

Следуя предложению kaylum, я добавил perror («Ошибка:»); сразу после системного звонка и получил ключ. Хорошее Невозможно выделить память, которую мне придется тщательно проверять, так как я работаю в кластере с системой очередей.

...