C/400

120. 外部標識(ジョブ・スイッチ)を検査するには ?

U1〜U8 のジョブ・スイッチと呼ばれる外部標識を C言語で扱うことは少ないので
その例も IBM マニュアルでも紹介されていない。
外部標識は C/400 では _JOB_SWITCHES として定義されていて
使用するには MILIB.H をインクルードする必要がある。

【サンプル・ソース: TESTSWS 】
0001.00 #include                                       
0002.00 #include                                      
0003.00 #include                                      
0004.00 #include                                       
0005.00                                                         
0006.00 #define TRUE         0                                  
0007.00 #define FALSE       -1                                  
0008.00                                                         
0009.00 void main(void){                                        
0010.00   char sws[9];                                          
0011.00                                                         
0012.00   printf("** TESTSWS **\n");                            
0013.00   getchar();                                            
0014.00   system("CHGJOB SWS(XXXXXX1X)");                       
0015.00   memcpy(sws, &_JOB_SWITCHES, 8);                       
0016.00   printf("sws = [%s]\n", sws);                          
0017.00   if(_JOB_SWITCHES[6] == '1') printf("U7 is ON\n");     
0018.00   else printf("U7 is OFF\n");                           
0019.00   if(_JOB_SWITCHES[7] == '1') printf("U8 is ON\n");     
0020.00   else printf("U8 is OFF\n");                           
0021.00   getchar();                      
0022.00   system("CHGJOB SWS(XXXXXX0X)"); 
0023.00 } 
【実行結果】
【解説】
0014.00   system("CHGJOB SWS(XXXXXX1X)");

によって XXXXXX1X7番目1 にセットしてオンにすることを意味している。
X とは、スイッチを変更せずにそのままの値にしておくことを意味する。
オフ(OFF)にセットしたい場合は 0 をセットする。