C 系统调用从第二次开始失败
C system call fails from second time on
我正在 运行ning 一个程序,给定点执行 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 的建议,我在 system
调用后添加了 perror("Error: ");
并获得了密钥。一个很好的Cannot allocate memory
,我必须仔细检查,因为我在一个带有队列系统的集群中工作。
根据 kaylum 的建议,我添加了 perror("Error: ");就在系统调用之后,拿到了钥匙。一个很好的无法分配内存,我必须仔细检查,因为我在具有队列系统的集群中工作。
我正在 运行ning 一个程序,给定点执行 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 的建议,我在 system
调用后添加了 perror("Error: ");
并获得了密钥。一个很好的Cannot allocate memory
,我必须仔细检查,因为我在一个带有队列系统的集群中工作。
根据 kaylum 的建议,我添加了 perror("Error: ");就在系统调用之后,拿到了钥匙。一个很好的无法分配内存,我必须仔细检查,因为我在具有队列系统的集群中工作。