C系统调用从第二次开始失败



我正在运行一个程序,给定的点会调用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 %dn ",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

如果在运行之后我手动执行命令,它将按预期工作。

EDIT根据kaylum的建议,我在system调用后添加了perror("Error: ");,并获得了密钥。一个很好的Cannot allocate memory,我必须仔细检查,因为我在一个带有队列系统的集群中工作。

根据kaylum的建议,我添加了perror("错误:"(;刚打完系统电话就拿到了钥匙。一个很好的"无法分配内存",因为我在使用队列系统的集群中工作,所以必须仔细检查。

最新更新