Rational Developer for System z

오류 피드백용 C 프로그램

다음 샘플 C 프로그램 ZFLDATA는 전달된 DDName의 DSName을 동적으로 조회합니다. 관련 참조에 있는 PL/I 샘플 프로그램은 오류 피드백을 위해 SYSXMLSD DDName의 DSName 조회를 수행하는 C 프로그램의 호출을 설명합니다.
TMPLT00에서 처리의 일부로 ZFLDATA라는 C 루틴을 호출합니다. 이 루틴의 용도는 하나입니다. 데이터 세트 DD 이름을 사용하여 가능한 경우 DD 이름이 가리키는 데이터 세트 이름을 리턴합니다. ZFLDATA의 소스가 아래에 나열되어 있습니다.
#include <stdio.h>
#include <string.h>
#define FILENAMEMAX 255
#define ATTRMAX 100

int main(void)
{
   FILE *stream;
   char dsn[FILENAMEMAX];
   char filename[FILENAMEMAX];
   char fileattrs[ATTRMAX];
   int rc;
   int getFileData(char * dsn, char * filename, char * fileattrs);


   memset(filename ,'\0',sizeof(filename));
   memset(filename ,'\0',sizeof(fileattrs));
   memcpy(filename ,"DD:SYSXMLSD",sizeof("DD:SYSXMLSD"));
   memcpy(fileattrs ,"a+",
		   sizeof("a+"));


   rc = ZFLDATA(dsn,filename,fileattrs);



   if (rc != 0)
      printf("fldata failed\n");
   else
      printf("filename is %s\n",dsn);
}

int ZFLDATA(char * dsn, char *fn, char *fileattrs)
  {
	 fldata_t fileinfo;
	 fldata_t * fileinfoptr;
	 int rc;
	 FILE *stream;

	 /******************************************************/
	 /*Get a stream for the file and attributes passed in  */
	 /******************************************************/
	 stream = fopen(fn,fileattrs);
     if (stream == NULL)
     {
        perror("***FAILURE OPENING FILE*****");
     }

     /******************************************************/
     /*Get the actual data set name on DASD from fldata    */
     /******************************************************/
	 memset(dsn ,'\0',
  		   sizeof(dsn));
	 fileinfoptr = &fileinfo;
     rc = fldata(stream, dsn, &fileinfo;);
	 if (rc != 0)
	   {
	         printf("fldata failed\n");
	   }
	 else
	 {
	     memcpy (dsn,
	  		   fileinfoptr->__dsname,
	  		   strlen(fileinfoptr->__dsname));
	 }
     fclose(stream);
	 return rc;
	}

이용 약관 | 피드백

이 Information Center는 Eclipse 기술로 구현됩니다. (http://www.eclipse.org 웹사이트 참조)