在COBOL中启动子进程

在COBOL中启动子进程,cobol,child-process,gnucobol,Cobol,Child Process,Gnucobol,如何在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,

如何在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中实现同样的功能?

使用一个通用的COBOL扩展,自GnuCOBOL(以前的OpenCOBOL)多年来就一直支持该扩展:

这也适用于“cobcrun”,如果您需要具有单独环境的COBOL进程(
EXTERNAL
items,
ACCEPT x FROM y
/
SET environment y TO x
)或运行时配置(例如通过
cobcrun-c different.cfg OTHERMAIN

您的原始样本可能看起来像(没有使用管道的选项,这将是一个不同的问题):

之后,您可以将dirlist作为正常的行顺序文件读取

西蒙


顺便说一句:根据您的示例,您可以查找
调用'C$LISTDIR'

什么Cobol???;在大型机CICS/Cobol中,您将使用CICS启动command@BruceMartin我正在使用
GNUCobol
。你能举个例子吗?我不能回答。我已经把这个问题复制到GNUCobol论坛()上,这样他们就知道了;我想比尔/布赖恩很快就会回答这个问题。还添加了GNUCoboltag@BruceMartin谢谢!哦,太好了!谢谢!Brian指出了有关cobol中分叉的详细信息
CALL 'SYSTEM' USING whatever END-CALL
CALL 'SYSTEM' USING 'ls -l >dirlist'
  ON EXCEPTION
    CALL 'SYSTEM' USING 'dir >dirlist'
    END-CALL
END-CALL