Untitled
unknown
plain_text
a year ago
1.1 kB
4
Indexable
const { exec } = require("child_process");
const fs = require("fs");
const path = require("path");
const { v4: uuidv4 } = require("uuid");
const executeCPP = (code, input) => {
return new Promise((resolve, reject) => {
const jobId = uuidv4();
const inputFilePath = path.join(__dirname, `${jobId}.txt`);
const outputFilePath = path.join(__dirname, `${jobId}.out`);
const codeFilePath = path.join(__dirname, `${jobId}.cpp`);
fs.writeFileSync(inputFilePath, input);
fs.writeFileSync(codeFilePath, code);
exec(`g++ ${codeFilePath} -o ${jobId} && ./${jobId} < ${inputFilePath} > ${outputFilePath}`, (error, stdout, stderr) => {
if (error) {
return reject({ error, stderr });
}
const output = fs.readFileSync(outputFilePath, "utf-8");
resolve({ stdout: output });
// Clean up files
fs.unlinkSync(inputFilePath);
fs.unlinkSync(outputFilePath);
fs.unlinkSync(codeFilePath);
fs.unlinkSync(jobId);
});
});
};
module.exports = { executeCPP };
Editor is loading...
Leave a Comment