z/OS UNIX 環境では、SYSTEM(MVS) オプションを指定して MAIN プログラムをコンパイルすると、通常どおり、プログラムが呼び出されたときに指定されたパラメーターを含む 1 つの CHARACTER VARYING ストリングがプログラムに渡されます。
しかし z/OS UNIX 環境で SYSTEM(OS) オプションを指定して MAIN プログラムをコンパイルすると、z/OS UNIX のマニュアルに記述されている 7 つのパラメーターがプログラムに渡されます。 これらの 7 パラメーターは、次を含んでいます。
図 17 内のプログラムは、SYSTEM(OS) インターフェースを 使用して、個々の引数と環境変数を参照して表示します。
*process display(std) system(os);
sayargs:
proc(argc, pArgLen, pArgStr, envc, pEnvLen, pEnvStr, pParmSelf)
options( main, noexecops );
dcl argc fixed bin(31) nonasgn byaddr;
dcl pArgLen pointer nonasgn byvalue;
dcl pArgStr pointer nonasgn byvalue;
dcl envc fixed bin(31) nonasgn byaddr;
dcl pEnvLen pointer nonasgn byvalue;
dcl pEnvStr pointer nonasgn byvalue;
dcl pParmSelf pointer nonasgn byvalue;
dcl q(4095) pointer based;
dcl bxb fixed bin(31) based;
dcl bcz char(31) varz based;
display( 'argc = ' || argc );
do jx = 1 to argc;
display( 'pargStr(jx) =' || pArgStr->q(jx)->bcz );
end;
display( 'envc = ' || envc );
do jx = 1 to envc;
display( 'pEnvStr(jx) =' || pEnvStr->q(jx)->bcz );
end;
end;