使用z/OS UNIX System Services在CICS中运行shell命令

作者:佚名 上传时间:2023-04-18 运行软件:C语言 软件版本:z/OS V2R3 版权申诉

本示例展示了如何在CICS中通过z/OS UNIX System Services运行shell命令,并在CICS中显示命令输出。在CICS中运行shell命令可以扩展CICS的功能。

#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <ctype.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

#define SHELL_COMMAND "ls"

void runShellCommand() {
    int fdPipe[2];
    char buf[1024];
    int bytesRead;

    if (pipe(fdPipe) == -1) {
        fprintf(stderr, "Failed to create pipe: %s\n", strerror(errno));
        exit(1);
    }

    int child_pid = fork();

    if (child_pid == -1) {
        fprintf(stderr, "Failed to fork child process: %s\n", strerror(errno));
        exit(1);
    }

    if (child_pid == 0) {
        if (dup2(fdPipe[1], STDOUT_FILENO) == -1) {
            fprintf(stderr, "Failed to redirect stdout: %s\n", strerror(errno));
            exit(1);
        }
        close(fdPipe[0]);
        close(fdPipe[1]);

        char *shellCommandArgv[] = { SHELL_COMMAND, NULL };
        execvp(SHELL_COMMAND, shellCommandArgv);

        fprintf(stderr, "Failed to execute shell command: %s\n", strerror(errno));
        exit(1);
    }

    close(fdPipe[1]);

    memset(buf, 0, sizeof(buf));
    bytesRead = read(fdPipe[0], buf, sizeof(buf) - 1);
    const char *end = buf + bytesRead;
    const char *start = buf;

    while (start < end) {
        const char *nextLine = strchr(start, '\n');
        if (nextLine != NULL) {
            *nextLine = '\0';
            printf("%s\n", start);
            start = nextLine + 1;
        } else {
            break;
        }
    }

    close(fdPipe[0]);
    int status;
    waitpid(child_pid, &status, 0);

    if (status != 0) {
        fprintf(stderr, "Shell command exited with status: %d\n", status);
    }
}

int main(int argc, char **argv) {
    runShellCommand();
    return 0;
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
使用z/OS UNIX System ServicesCICS运行shell命令
本示例展示了如何在CICS中通过z/OS UNIX System Services运行shell命令,并在CICS中显示命令输出。在CICS中运行shell命令可以扩展CICS的功能。#includ
z/OS V2R3
C语言
2023-04-18 00:02
使用z/OS Unix System Services APIz/OS上执行Shell命令
本示例展示了如何使用z/OS Unix System Services API执行Shell命令。使用z/OS Unix System Services API,该示例通过执行Shell命令来列出当前
z/OS V2.2
C语言
2023-03-23 09:45
使用z/OS UNIX System Services运行Python程序
本示例代码展示如何在z/OS环境中使用UNIX System Services(USS)运行Python程序,包括设置环境变量和文件系统权限等。通过此方法,用户可以在z/OS上运行Python程序,以
z/OS V2R4
Python 3.6
2023-03-16 17:42
如何使用z/OS Unix System Services管理shell日志?
本示例代码展示了如何使用z/OS Unix System Services (USS)管理shell日志。实现方式是通过调用USS shell的“script”命令,在shell会话期间记录所有操作和
z/OS V2R2及以上
z/OS操作系统
2023-04-27 12:07
使用z/OS Unix System Servicesz/OS上执行REXX脚本
该示例代码介绍了如何使用z/OS Unix System Services在z/OS上执行REXX脚本。通过运行REXX脚本,该程序可以创建新目录并将文件复制到该目录中。/* REXX */Add
z/OS V2.4
REXX
2023-05-23 11:02
使用z/OS Unix System Services删除文件
展示如何在z/OS操作系统中使用Unix System Services命令删除文件,介绍了必要的代码和一些注意事项//DELETE EXEC PGM=IKJEFT01,DYNAMNBR=50//
z/OS V2R4
IBM z/OS操作系统
2023-04-23 23:18
如何使用z/OS Unix System ServicesIBM Mainframe上执行Shell脚本
本示例展示了如何在IBM Mainframe上使用z/OS Unix System Services执行Shell脚本。具体实现方式包括创建JCL作业和使用BPXBATCH命令。//JOBNAME
z/OS V2.4
IBM z/OS
2023-04-18 22:18
使用z/OS Unix System Services编写Shell脚本的示例代码
本示例展示了如何使用z/OS Unix System Services编写Shell脚本来执行常见任务,包括文件操作、字符串处理以及调用其它程序等。使用该示例可以帮助初学者了解z/OS Unix Sy
z/OS V2R2
Unix System Services
2023-04-30 21:25
使用z/OS UNIX System Services查找文件
该示例代码演示了如何在z/OS平台上使用UNIX System Services(USS)查找并打印指定目录下的文件列表。它利用了shell脚本来逐个检索目录并逐个列出文件,然后使用z/OS系统提供的
z/OS V2.3
z/OS UNIX shell
2023-04-27 07:13
使用z/OS Unix System Services实现文件管理操作
本示例展示了如何通过z/OS Unix System Services使用C语言实现创建、读取、写入和删除文件的基本操作。#include <stdio.h>#include <
z/OS V2R3
C语言
2023-04-15 17:32