如何在GnuCOBOL中启动子进程?
在Node.js中,我们可以使用spawn或exec启动子进程:
var proc = require("child_process").spawn("ls", ["-l"]);
proc.stdout.on("data", function (chunk) {
console.log(chunk);
});
// or
var proc = require("child_process").exec("ls -l"], function (err, stdout, stderr) {
...
});以上两个示例都运行ls -l (列出文件和目录)。如何在COBOL中实现同样的目标?
发布于 2016-05-06 05:45:59
使用一个公共的COBOL扩展,这个扩展在GnuCOBOL (以前的OpenCOBOL)中支持多年了:
CALL 'SYSTEM' USING whatever END-CALL这也适用于“cobcrun”,如果您需要一个具有单独环境(EXTERNAL items,ACCEPT x FROM y / SET ENVIRONMENT y TO x)或运行时配置(例如通过cobcrun -c different.cfg OTHERMAIN)的COBOL进程,则可以使用。
您的原始示例可能看起来(没有使用管道的选项,这将是一个不同的问题):
CALL 'SYSTEM' USING 'ls -l >dirlist'
ON EXCEPTION
CALL 'SYSTEM' USING 'dir >dirlist'
END-CALL
END-CALL之后,您可以将目录读入为普通行顺序文件。
西蒙
顺便说一句:给出你的样本,你可以去找CALL 'C$LISTDIR'。
https://stackoverflow.com/questions/37056582
复制相似问题