标签: zos

如何在z/OS上的C++中使用C套接字API

我在让C套接字API在C++上正常工作时遇到问题z/OS.

虽然我包括在内sys/socket.h,但我仍然遇到编译时错误,告诉我AF_INET没有定义.

我是否遗漏了一些显而易见的事情,或者这与这样一个事实相关:继续z/OS使我的问题变得更加复杂?


更新:经过进一步调查,我发现有一个#ifdef我正在打击.z/OS除非我定义我使用的哪种"类型"套接字,否则显然不高兴:

#define _OE_SOCKETS
Run Code Online (Sandbox Code Playgroud)

现在,我个人不知道这_OE_SOCKETS实际上是什么,所以如果任何z/OS套接字程序员在那里(你们三个人),或许你可以给我一个如何运作的概述?


测试应用程序

#include <sys/socket.h>

int main()
{
    return AF_INET;
}
Run Code Online (Sandbox Code Playgroud)

编译/链接输出:

cxx -Wc,xplink -Wl,xplink -o inet_test inet.C

"./inet.C", line 5.16: CCN5274 (S) The name lookup for "AF_INET" did not find a declaration.
CCN0797(I) Compilation failed for file ./inet.C. Object file not created.
Run Code Online (Sandbox Code Playgroud)

检查sys/sockets.h确实包含了我需要的定义,据我所知,它没有被任何#ifdef语句阻止.

但我注意到它包含以下内容:

#ifdef __cplusplus
  extern "C" {
#endif
Run Code Online (Sandbox Code Playgroud)

它基本上封装了整个文件.不确定是否重要.

c c++ sockets mainframe zos

146
推荐指数
9
解决办法
1万
查看次数

C 中 char foo(|10|) 的含义是什么?

我是一位非常有经验的 C 程序员,但最近我在大型机上遇到了一些具有局部变量的代码。这是在一个简单的 C 函数中声明此变量,然后strcpystrcat两个字符串放入其中,然后尝试使用fopen.

char foo(|10|);
Run Code Online (Sandbox Code Playgroud)

这段代码很旧了。甚至可能是 K&R C 旧的。我想知道这是否是一些晦涩的编译器扩展或对没有 [] 或类似内容的键盘的适应。

有人知道这个声明是否“特殊”吗?

这是一个标准的 Z/OS 大型机。我不确定使用什么编译器。

c mainframe ebcdic zos

99
推荐指数
1
解决办法
4275
查看次数

使用Java/OOP/SQL背景学习大型机和JCL

我在整个职业生涯中一直在编写和管理Java和ASP.Net应用程序和服务器.现在我被引导参与大型机,即z/OS和JCL,我发现很难绕过它(他们仍然在谈论打卡!).在被现代奢侈品完全宠坏后,学习所有这些的最佳方法是什么?

mainframe jcl zos

8
推荐指数
1
解决办法
3983
查看次数

教我自己的Z/OS汇编程序?

"我在一家做大量机器工作的公司实习.我的大部分主机经验都是使用Java和Unix系统服务.我有一些ISPF接口和C的经验,但没有使用汇编程序.我即将毕业,将在上学期接受独立学习.我想坚持使用大型机,并想知道哪些资源可以教我主机汇编程序?注意我没有为任何平台编写汇编程序的经验,但是理解二进制,十六进制,并且对寄存器有理论上的理解.

assembly mainframe zos

8
推荐指数
3
解决办法
1万
查看次数

如何在JCL FTP中保护商店密码?

我有以下代码使用JCL通过FTP发送文件:

//FTP00001 EXEC PGM=IKJEFT01,DYNAMNBR=50         
//OUT      DD   SYSOUT=*                         
//AMSDUMP  DD   SYSOUT=*                         
//SYSTSPRT DD   SYSOUT=*                         
//SYSIN    DD   DUMMY                             
//SYSPRINT DD   DUMMY                             
//OUTPUT   DD   SYSOUT=*                         
//SYSTSIN  DD  *                                 
123.234.345.67
myuser1
p4ssw0rd
ascii
cd infos
PUT 'EF35.LMINFO.D180203' info_180203.txt
QUIT
/*
Run Code Online (Sandbox Code Playgroud)

它就像一个魅力,问题是我不想把凭证硬编码在JCL里面.我们怎么能隐藏它们,以便任何有权访问JCL的人都看不到连接细节?我也想从输出中隐藏凭据,但请注意我仍然希望看到其余的信息:传输的字节,可能的错误消息等等.

我想将SYSTSIN内容放在一个文件中,但是我遇到了同样的问题:任何有权访问该文件的人都会看到用户并通过.因此,解决这个问题的最佳方法是什么?

security ftp mainframe jcl zos

7
推荐指数
1
解决办法
473
查看次数

DB2 - 什么是NF(新功能)模式?

我对客户关于DB2的NF模式有一些疑问.谷歌几乎没有关于它的信息.

我已经能够推断出以下内容,但我并不完全相信它......

  1. NF和CM(兼容模式)是大型机上DB2 v8的设置.
  2. CM中z/OS上的DB2 v8旨在允许DB2 v8用作DB2 v7的替代品.
  3. NF进行了许多改变,打破了向后兼容性.
  4. 特别是"数据字典"系统表完全重做.

我怀疑以下,但我更不确定它...

  1. 重新编写的数据字典和系统表与Linux/Unix/Windows上的DB2 v8使用的类似.
  2. DB2 v8 NF在很大程度上与DB2 v9兼容.
  3. DB2 v9在各种平台(Linux/Unix/Windows和大型机)上更加一致.
  4. 编写为使用DB2 v8 NF编写的代码通常可以在任何地方使用LUW和DB2 v9上的DB2 v8.

任何人都可以告诉我,如果我是对的吗?或者添加更多细节?

migration db2 mainframe zos

6
推荐指数
1
解决办法
8892
查看次数

DB2 SQL代码提取存储过程

我和我的同事在托管的DB2/z数据库(版本8.1)上有几百个SQL存储过程.我们没有管理员权限,我们对数据库的访问是通过QMF屏幕进行的.使用TSO FT命令通过3270终端会话完成下载.

是否有一种简单/有效的方法来提取所有存储过程的定义/文本?

我想在SVN或其他一些版本控制系统中进行每周转储.

任何建议将不胜感激.

谢谢
Stephen


更新 - 2009年7月9日

非常感谢您的建议,但它们似乎对我们的特定配置没有帮助.我将回到我们的供应商并询问他们了解更多信息.当我进一步学习时会更新.

斯蒂芬

sql db2 mainframe zos

6
推荐指数
2
解决办法
3万
查看次数

Is there a way to do associative arrays in REXX?

I have some Perl code (for performance analysis) first developed under Linux which now needs to be ported to the mainframe. Apparently REXX is the scripting language of choice on that platform but this Perl script relies heavily on associative arrays (basically arrays where the index is a string).

Is there a way that in REXX? How would I code up something like:

$arr{"Pax"} = "Diablo";
$arr{"Bob"} = "Dylan";
print $arr{"Pax"} . "\n";
if (defined $arr{"no"}) {
        print "Yes\n";
} …
Run Code Online (Sandbox Code Playgroud)

associative-array mainframe rexx zos

6
推荐指数
2
解决办法
4121
查看次数

如何说服z/OS scp传输二进制文件?

我们目前为Linux-to-Linux设置了基于SSH的文件传输脚本,我们将它们移植到z/OS以运行z/OS-to-Linux.请注意,这是使用USS,z/OS中的UNIX系统服务,也称为OMVS,它使用EBCDIC,而不是使用ASCII的zLinux.

我们已经设置了所有SSH密钥文件和什么不是,并且传输本身工作正常.

然而,z/OS,它的无限智慧,坚持将文件从EBCDIC转换为ASCII,尽管它们是二进制文件 - 这会搞砸目标文件的内容.

scpz/OS上的联机帮助页指出:

scp假定文件是文本.转换在EBCDIC和ASCII平台之间复制的文件.

而且我在手册中找不到任何有用的东西,表明如何解决这个问题.

对于想要在两个平台之间传输二进制文件的人来说,这似乎是一个奇怪的限制.有没有人知道一种方法,使用SSH标准密钥文件(我们需要这个安全性,不允许裸FTP),实现二进制传输而不进行翻译?

linux scp mainframe file-transfer zos

6
推荐指数
1
解决办法
2290
查看次数

COBOL段落编号背后的逻辑是什么?

我已经多次看到以下段落命名结构:

nnnn-PARAGRAPH-NAME.
Run Code Online (Sandbox Code Playgroud)

哪里nnnn代表一个4位数字.

这是一个完整的例子:

0000-MAINLINE. 
    PERFORM 1000-INITIALIZE-THE-PROGRAM. 
    PERFORM 2000-PROCESS-1-BILLING-RECORD 
        UNTIL 88-100-ALL-RECORDS-PROCESSED. 
    PERFORM 3000-TERMINATE-THE-PROGRAM. 
    GOBACK. 
1000-INITIALIZE-THE-PROGRAM. 
    PERFORM 1100-VALIDATE-CONTROL-CARD. 
    PERFORM 1200-OPEN-THE-FILES. 
    PERFORM 8000-GET-NEXT-BILLING-RECORD. 
1100-VALIDATE-CONTROL-CARD. 
    PERFORM 1110-READ-CONTROL-CARD. 
    PERFORM 1120-EDIT-CONTROL-CARD. 
1110-READ-CONTROL-CARD. 
    PERFORM 9000-ABEND-THE-PROGRAM.  *> IF A READ ERROR OCCURRED 
1120-EDIT-CONTROL-CARD. 
    PERFORM 9000-ABEND-THE-PROGRAM   *> IF AN EDIT ERROR OCCURRED 
1200-OPEN-THE-FILES. 
    PERFORM 9000-ABEND-THE-PROGRAM   *> IF AN OPEN ERROR OCCURRED 
2000-PROCESS-1-BILLING-RECORD. 
    PERFORM 2100-CALCULATE-BILLABLE-AMT. 
    PERFORM 2200-PRINT-BILLING-REPORT. 
    PERFORM 8000-GET-NEXT-BILLING-RECORD. 
2200-PRINT-BILLING-REPORT. 
    PERFORM 2210-PRINT-REPORT-HEADER.  *> WHEN IT'S NEEDED 
3000-TERMINATE-THE-PROGRAM. 
    PERFORM 3100-CLOSE-THE-FILES. 
    PERFORM 3200-DISPLAY-FINAL-MESSAGES. 
8000-GET-NEXT-BILLING-RECORD. 
    PERFORM 9000-ABEND-THE-PROGRAM.    *> IF A …
Run Code Online (Sandbox Code Playgroud)

optimization cobol mainframe zos

6
推荐指数
2
解决办法
292
查看次数

标签 统计

mainframe ×10

zos ×10

c ×2

db2 ×2

jcl ×2

assembly ×1

associative-array ×1

c++ ×1

cobol ×1

ebcdic ×1

file-transfer ×1

ftp ×1

linux ×1

migration ×1

optimization ×1

rexx ×1

scp ×1

security ×1

sockets ×1

sql ×1