Metal CでのWTO命令を使用して、ジョブログに「Hello World」を印刷しようとしています。これは、z/OS V1R10.0メタルCプログラミングガイドおよびリファレンスのセクション1.2.3.5の例に基づいています.WTOを使用すると表示されます.0またはASCIIからEBCDICへの変換を含むバッファに問題があります。私は下に私の仕事ログの関連するセクションを貼り付けました、その後私のコード、そして私がコンパイルすることができなかったIBMの例のコード。 ジョブログWTOを使用してMetal Cで印刷する
09.01.56 J0686275 IEF403I IMIJWS0G - STARTED - TIME=09.01.56 09.01.56 J0686275 +...0....... 09.01.56 J0686275 - --TIMINGS (MINS.)-- ----PAGING COUNTS--- 09.01.56 J0686275 -IMIJWS0G GO 00 6 .00 .00 .00 1292 0 0 0 0 0 1 09.01.56 J0686275 IEF404I IMIJWS0G - ENDED - TIME=09.01.56
私のコード
#include #include #include int main() { struct WTO_PARM { unsigned short len; unsigned short code; char* text; } wto_buff = { 4+11, 0, "hello world" }; __asm(" WTO MF=(E,(%0)) " : : "r"(&wto_buff)); }
IBMコード
int main() { struct WTO_PARM { unsigned short len; unsigned short code; char text[80]; } wto_buff = { 4+11, 0, "hello world" }; __asm(" WTO MF=(E,(%0)) " : : "r"(&wto_buff)); return 0; }
+1構造体を修正してください –
2つの構造体の「メモリ内のレイアウト」は同じです。異なる構造体です。 1つはポインタを持ち(このポインタは構造体の外側のどこかを指しています)、もう一方は配列を持っています(配列は関数、構造体などで宣言されています)。 –