根据kaylum的建议,我添加了perror("错误:"(;刚打完系统电话就拿到了钥匙。一个很好的"无法分配内存",因为我在使用队列系统的集群中工作,所以必须仔细检查。
我正在运行一个程序,给定的点会调用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
,我必须仔细检查,因为我在一个带有队列系统的集群中工作。