simple program to read/write a text file
Some checks failed
MVS Delete Members / delete-members (push) Failing after 16s
MVS Submit & Execute / upload-and-run (push) Successful in 53s

This commit is contained in:
Greg Gauthier 2026-02-08 14:19:53 +00:00
parent 549f628141
commit 9eb35007ee
2 changed files with 47 additions and 0 deletions

7
jcl/TXTWKR01.jcl Normal file
View File

@ -0,0 +1,7 @@
//TXTWKR01 JOB (GCC),'File I/O Example',
// NOTIFY=@05054,CLASS=A,MSGCLASS=A,
// MSGLEVEL=(1,1),REGION=4M,TIME=1440
//* Compile and Go Step
//STEP1 EXEC GCCCG,INFILE='@05054.SRCLIB.C(TXTWKR01)'
//GO.TESTDD DD DSN=@05054.DATA(TESTMEM),DISP=OLD
//

40
src/TXTWKR01.c Normal file
View File

@ -0,0 +1,40 @@
#include <stdio.h>
#define BUFFER_SIZE 256
/* Simple program to read and append to a single PDS member via DD name. */
/* Author: Greg Gauthier */
/* Date: 2026-02-08 */
/* NOTE: No single-line comments due to MVS SYSIN/JCL interpretation. */
int main()
{
FILE *fp;
char buffer[BUFFER_SIZE];
/* Open the file in update mode (read and write). */
/* The filename is "dd:DDNAME" where DDNAME is defined in JCL. */
fp = fopen("dd:TESTDD", "r+");
if (fp == NULL)
{
perror("fopen failed");
return 1;
}
/* Read and print existing lines (to SYSOUT). */
printf("Existing content:\n");
while (fgets(buffer, BUFFER_SIZE, fp) != NULL)
{
printf("%s", buffer);
}
/* After reading to EOF, the file position is at the end, so we can append. */
fprintf(fp, "Appended from C program!\n");
/* Close the file. */
fclose(fp);
printf("Append complete.\n");
return 0;
}