Have you tried your suggestion Alan?  (it doesn't work)

//BPXBATCH  JOB (),'WOLF',MSGCLASS=H,NOTIFY=&SYSUID,REGION=32M
//*
//SHELL   EXEC PGM=BPXBATCH,PARM='SH cp //DD:MYDD /dev/fd1'
//STDENV  DD *
_BPX_BATCH_SPAWN=YES
_BPX_SHAREAS=YES
//STDIN   DD DUMMY
//STDOUT  DD SYSOUT=*
//STDERR  DD SYSOUT=*
//MYDD    DD DISP=SHR,DSN=SYS1.MACLIB(ACB)
//
cp: FSUM6258 cannot open file "//DD:MYDD": EDC5037I The specified ddname
was not found.

You can use BPXBATSL, but you can't run a login shell with it unless you
are root.   So you don't get the system or your login profile run.
But if you can live with that, then this works:

//BPXBATSL  JOB (),'WOLF',MSGCLASS=H,NOTIFY=&SYSUID,REGION=32M
//*
//SHELL   EXEC PGM=BPXBATSL,PARM='PGM /bin/cp //DD:MYDD /dev/fd1'
//STDENV  DD *
_BPX_BATCH_SPAWN=YES
_BPX_SHAREAS=YES
//STDIN   DD DUMMY
//STDOUT  DD SYSOUT=*
//STDERR  DD SYSOUT=*
//MYDD    DD DISP=SHR,DSN=SYS1.MACLIB(ACB)
//

Years ago, the mvs-oe forum was about 75% BPXBATCH issues; you might want
to check the archives.

You might want to try COZBATCH, which is a little utility that was designed
to work like a reasonable person would expect:
https://dovetail.com/products/cozbatch.html

Kirk Wolf
Dovetailed Technologies
http://dovetail.com

On Thu, Oct 12, 2017 at 8:19 PM, Alan Young <[email protected]> wrote:

> Try changing the STDENV DD to
>
> //STDENV DD *
> _BPX_BATCH_SPAWN=YES
> _BPX_SHAREAS=YES
> /*
>
> The variables are discussed in https://www.ibm.com/support/
> knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxa400/bpxug240.htm
>
> -----Original Message-----
> >From: Frank Swarbrick <[email protected]>
> >Sent: Oct 12, 2017 5:17 PM
> >To: [email protected]
> >Subject: fopen DD
> >
> >I am playing with the Swift for z/OS beta.  Swift itself supports little
> in the way of I/O, and instead depends on the underlying C runtime.  Below
> is a small program that opens a file, reads 4 bytes in to a buffer and
> writes out the results as an integer.
> >
> >import Libc
> >
> >func fwx(file filename: String, access: String) {
> >    if let fwf = fopen(filename, access) {
> >        defer { fclose(fwf) }
> >        let buffer = UnsafeMutablePointer<UInt32>.allocate(capacity: 1)
> >        defer { buffer.deallocate(capacity: 1) }
> >        let _ = fread(buffer, MemoryLayout<UInt32>.size, 1, fwf)
> >        print("from \(filename): \(buffer.pointee)")
> >    }
> >    else {
> >        print("error opening file \(filename): \(errno)")
> >    }
> >}
> >
> >fwx(file: "/u/dvfjs/fw.bin", access: "rb")
> >fwx(file: "//'DVFJS.FW'", access: "rb")
> >fwx(file: "dd:FW", access: "rb")
> >
> >The last three statements are the "mainline" of the program.  For the
> first one the file is a Unix file.  For the second one its a VSAM ESDS
> called 'DVFJS.FW'.  Both of these work.  I can't figure out how to specify
> a DD reference to make that last one work.  I've tried both using "dd:FW"
> and "//dd:FW".  Is it perhaps a problem with the DD itself?  When running
> it under BPXBATCH I am specifying the FW DD like I would for any other
> batch job:
> >
> >//SHELL  JOB NOTIFY=&SYSUID,REGION=2000M
> >//UNIXSH  EXEC PGM=BPXBATCH,PARMDD=PARMSIN
> >//FW      DD DISP=SHR,DSN=DVFJS.FW
> >//PARMSIN DD *
> >SH /u/dvfjs/src/fw
> >/*
> >//STDIN   DD DUMMY
> >//STDOUT  DD SYSOUT=*
> >//STDERR  DD SYSOUT=*
> >//STDENV  DD DUMMY
> >//
> >
> >Does the Unix environment for BPXBATCH not have access to the JCL DD?
> >
> >We don't have a license for the C compiler, so I've never used C for z/OS.
> >
> >Frank
> >
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to