|
Scott,
I've tried to run a Pase program with spawn() but it does not seem to work
because I get the error CPE3021 (while if I replace the Pase program with a
C program it works).
Giuseppe.
----- Original Message -----
From: "Scott Klement" <midrange-l@xxxxxxxxxxxxxxxx>
To: "Midrange Systems Technical Discussion" <midrange-l@xxxxxxxxxxxx>
Sent: Friday, September 02, 2005 9:37 PM
Subject: RE: Pase environment from a batch cl
>
> > I think I would like to see your rpg use of Qp2RunPase() please.
>
> Upon further inspection, I determine that Qp2RunPase() will also bring up
> the "stdout/stderr" screen. The difference, however, seems to be that it
> doesn't wait for the user to press enter afterwards.
>
> Here's a copy/paste from one of my programs. This subprocedure is
> intended for unzipping a .ZIP file that has a password (using the Info-Zip
> software running in PASE)
>
> *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> * Unzip(): Unzip a file (uses the open source Info-Zip package
> * with a little help from PASE )
> *
> * peFile = (input) IFS pathname of file to unzip
> * pePassword = (input) Password used to decrypt the file
> *
> * Returns *ON if successful, *OFF otherwise
> *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> P Unzip B
> D Unzip PI 1N
> D peFile 1024A varying const
> D pePassword 32A varying const
>
> D Qp2RunPase PR 10I 0 extproc('Qp2RunPase')
> D pathName * value options(*string)
> D symbolName * value options(*string)
> D symbolData * value
> D symDataLen 10U 0 value
> D ccsid 10I 0 value
> D argv * dim(32767) options(*varsize)
> D envp * dim(32767) options(*varsize)
>
> D UNZIP_PROGRAM C '/usr/local/bin/unzip'
>
> D parms s 256A dim(5)
> D argv s * dim(6)
> D envp s * dim(1)
>
> c eval parms(1) = UNZIP_PROGRAM + x'00'
> c eval parms(2) = '-qq' + x'00'
> c eval parms(3) = '-P' + x'00'
> c eval parms(4) = pePassword + x'00'
> c eval parms(5) = peFile + x'00'
>
> c eval argv(1) = %addr(parms(1))
> c eval argv(2) = %addr(parms(2))
> c eval argv(3) = %addr(parms(3))
> c eval argv(4) = %addr(parms(4))
> c eval argv(5) = %addr(parms(5))
> c eval argv(6) = *NULL
> c eval envp(1) = *NULL
>
> c if Qp2RunPase( UNZIP_PROGRAM
> c : *NULL
> c : *NULL
> c : 0
> c : 819
> c : argv
> c : envp ) <> 0
> c return *OFF
> c endif
>
> c return *ON
> P E
>
> Thinking about it further... if you really wanted to suppress
> stdout/stderr, etc,you could use the spawn() API and connect
> stdin/stdout/stderr with pipes back to the program that issues the spawn.
>
> That way, you could read the output into your program instead of having
> them output to the screen.
>
> > While doing my testing, if the file exists, the copy happens correctly.
I
> > wanted to see what would happen if there was a problem. So I renamed my
> > from file but left my command the same. The screen tells me file not
found,
> > but the log file contains the information about CP.
>
> Hmmm... that's weird. Maybe if it's a local copy (i.e. there's no colon in
> the target filename parameter) the scp command will simply call cp under
> the covers.
> --
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
> To post a message email: MIDRANGE-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> or email: MIDRANGE-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/midrange-l.
>
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.