在 COBOL 中启动一个子进程
Start a child process in COBOL
如何在 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 中实现同样的事情?
也使用 GnuCOBOL(以前称为 OpenCOBOL)多年来一直支持的通用 COBOL 扩展:
CALL 'SYSTEM' USING whatever END-CALL
这也适用于 'cobcrun',如果您需要具有单独环境的 COBOL 进程(EXTERNAL
项,ACCEPT x FROM y
/ SET ENVIRONMENT y TO x
)或运行时配置(例如通过 cobcrun -c different.cfg OTHERMAIN
)。
您的原始示例可能看起来像(没有使用管道的选项,这将是一个不同的问题):
CALL 'SYSTEM' USING 'ls -l >dirlist'
ON EXCEPTION
CALL 'SYSTEM' USING 'dir >dirlist'
END-CALL
END-CALL
之后您可以将目录列表作为普通的行顺序文件来读取。
西蒙
顺便说一句:根据您的样本,您 可能 寻找 CALL 'C$LISTDIR'
.
如何在 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 中实现同样的事情?
也使用 GnuCOBOL(以前称为 OpenCOBOL)多年来一直支持的通用 COBOL 扩展:
CALL 'SYSTEM' USING whatever END-CALL
这也适用于 'cobcrun',如果您需要具有单独环境的 COBOL 进程(EXTERNAL
项,ACCEPT x FROM y
/ SET ENVIRONMENT y TO x
)或运行时配置(例如通过 cobcrun -c different.cfg OTHERMAIN
)。
您的原始示例可能看起来像(没有使用管道的选项,这将是一个不同的问题):
CALL 'SYSTEM' USING 'ls -l >dirlist'
ON EXCEPTION
CALL 'SYSTEM' USING 'dir >dirlist'
END-CALL
END-CALL
之后您可以将目录列表作为普通的行顺序文件来读取。
西蒙
顺便说一句:根据您的样本,您 可能 寻找 CALL 'C$LISTDIR'
.