我在做什么:
我正在创建一个在线判断,为此我使用 bullmq 作为队列,我必须将用户产生的输出与实际答案进行比较,为此我使用子进程 exec sync 来编译和运行并产生输出我制作为 output.txt 的文件,然后使用 diff 比较文件....
问题:
现在的问题是当使用 exec sync writing diff 命令给出错误说命令失败
status: 1,
signal: null,
output: [
null,
<Buffer 31 63 31 0a 3c 20 76 69 6b 20 76 65 72 6d 61 0a 5c 20 4e 6f 20 6e 65 77 6c 69 6e 65 20 61 74 20 65 6e 64 20 6f 66 20 66 69 6c 65 0a 2d 2d 2d 0a 3e 20 ... 40 more bytes>,
<Buffer >
],
pid: 19989,
stdout: <Buffer 31 63 31 0a 3c 20 76 69 6b 20 76 65 72 6d 61 0a 5c 20 4e 6f 20 6e 65 77 6c 69 6e 65 20 61 74 20 65 6e 64 20 6f 66 20 66 69 6c 65 0a 2d 2d 2d 0a 3e 20 ... 40 more bytes>,
stderr: <Buffer >
}
我的代码
let child = execSync(`cd ${inputfilepath} && g++ ${filepath} -o testprogram && ./testprogram < input.txt > output.txt && diff output.txt answer.txt`);
return child.toString();
}catch(err){
return err;
}
我已经在 shell 中运行命令,它工作正常。
我正在使用 exec 并且一切正常,但是当我检查所有测试用例时出现了一些问题,因为我正在制作单个输入输出文件以及我的编译文件。
我想知道为什么会出现这些错误