[Info-vax] Command Procedure Pipe output to a variable

HCorte hmmbcorte at gmail.com
Fri Oct 1 12:10:29 EDT 2021


A quinta-feira, 2 de setembro de 2021 à(s) 17:01:43 UTC+1, Stephen Hoffman escreveu:
> On 2021-09-02 13:33:29 +0000, HCorte said: 
> 
> > One more question finished the command procedure, know whanted to pass 
> > a variable/symbol to a program in fortran.
> DCL commonly uses symbols, and logical names, and files. DECnet is also 
> easy, IP and SSL/TLS connections lack good support. 
> 
> For Fortran, reading values from DCL symbols (lib$get_symbol), 
> translating values from logical names (lib$get_logical), reading the 
> data from the command input (works when in command procedures), reading 
> the input from a file (generic Fortran file I/O, or using RMS from 
> Fortran), reading the input from the DCL output directly, and reading 
> the input from a network link (DECnet, as DCL doesn't play well with 
> UDP, TCP, SSL/TLS), etc. 
> 
> Same as usual for reading input with any other Fortran programs on OpenVMS. 
> 
> Here, lib$get_symbol and lib$get_logical calls are probably the most 
> direct path, though I'd be tempted to use a file (possibly with 
> delete-on-close disposition), given you're seemingly working with a 
> list, and given the available Fortran sequential file I/O support. 
> 
> Biggest issue with Fortran for some of these cases tends to be parsing 
> data, as Fortran doesn't handle variable-length data all that well. 
> 
> The Fortran user's manual is probably a good starting point for 
> learning about your options and alternatives when using Fortran on 
> OpenVMS: 
> https://vmssoftware.com/docs/VSI_FORTRAN_USER.pdf 
> 
> As it can be inferred you're not completely comfortable with OpenVMS 
> and particularly with OpenVMS programming, some other documentation: 
> https://vmssoftware.com/docs/VSI_USERS_MANUAL.pdf 
> https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_I.pdf 
> https://vmssoftware.com/docs/VSI_PROGRAM_CONCEPTS_VOL_II.pdf 
> 
> And since I've filled this reply with RTL calls, and this in 
> conjunction with the Fortran user's manual (above): 
> https://vmssoftware.com/docs/VSI_RTL_LIB$_MANUAL.pdf
> > Posted the question in "comp.lang.fortran" but forgoted to specify in 
> > the initial inquiry/question that was using OpenVMS. 
> > 
> > One suggestion was to use "EXECUTE_COMMAND_LINE" that from what could 
> > tell its specific to Unix, and also "popen" from what could get also 
> > Unix specific is there a equivalent for OpenVMS?
> If you're invoking the procedure directly—and I'm still not entirely 
> clear about what this whole thread is trying to achieve—then calling 
> lib$spawn is one possibility, though there are others.
> > $ FORTRAN /VERSION 
> > HP Fortran V8.2-104939-50H96 
> > 
> > $ SHOW SYSTEM 
> > OpenVMS V8.4
> That's all past a dozen years old, and the HP/HPE OpenVMS versions are 
> no longer receiving patches. 
> 
> V8.4-2L1 (Alpha EV56 and older), V8.4-2L2, (Alpha EV6 and EV7), and 
> V8.4-2L3 (Itanium) are current, as is VSI Fortran V8.3-3. 
> 
> 
> 
> -- 
> Pure Personal Opinion | HoffmanLabs LLC

Thanks for the links to the documentation Stephen, reading the "Run-Time Library LIB$ Routines" for the lib$spawn and status that can return SS$_NORMAL,SS$_ACCVIO,SS$_DUPLNAM ,fac$_xxx,LIB$_INVARG ,LIB$_INVSTRDES,LIB$_NOCLI

with INCLUDE '($SSDEF)' know that the values of
SS$_NORMAL:           1
SS$_ACCVIO:          12
SS$_DUPLNAM:         148

but can't find what is the library to include for remaining constants LIB$_INVARG ,LIB$_INVSTRDES,LIB$_NOCLI and fac$_xxx

getting the following value retuned by the SPAWN routine: 231666

know that its not LIB$_INVARG and LIB$_INVSTRDES since was able to run in simple program (lib$spawn) where the params are the same, so most likely is LIB$_NOCLI or fac$_xxx.

could someone help in what is the name of library for the constants Status return by the routine and 231666 means what? perhaps its fac$_xxx "Other error trying to create subprocess." if so a bit vague in the probleam...



More information about the Info-vax mailing list