Operating System - OpenVMS
1751930 Members
5079 Online
108783 Solutions
New Discussion юеВ

Re: f$verify(0) from a program

 
SOLVED
Go to solution
dschwarz
Frequent Advisor

f$verify(0) from a program

Hi,

we want to do something like this (using fortran):

rtc = lib$spawn('dcl_proc',,mbxname,CLI$M_NOWAIT,,pid)

where mbxname represents a mailbox. This works fine, but with VERIFY on in the caller's environment, we get all the DCL of 'dcl_proc' in the mailbox. With SET NOVERIFY as the first line of 'dcl_proc' we still see that line in the mailbox.

How can we disable the caller's verify flag before calling lib$spawn and set it back to its original value after lib$spawn has completed. ?
13 REPLIES 13
Karl Rohwedder
Honored Contributor
Solution

Re: f$verify(0) from a program

Insert as 1st line of procedure:

$ tmp = 'F$verify(0)'

regards Kalle
dschwarz
Frequent Advisor

Re: f$verify(0) from a program

Ok, that works.
But we have to insert this as the first line in every procedure that will be traeted this way.
Is there a solution that can be implemented in the function which calls lib$spawn ?
Wim Van den Wyngaert
Honored Contributor

Re: f$verify(0) from a program

and
$ tmp='f$verify(tmp)'
as the last statement. Or it will stay off.

Wim
Wim
Volker Halle
Honored Contributor

Re: f$verify(0) from a program

I don't think there is an API available for turning off the DCL image and procedure verification bits from a program.

You could write some routine, which goes into supervisor mode to implement this...

But how about some intermediate DCL-procedure, which handles the verify flags and then calls the desired DCL-procedure, specified as a parameter like:

rtc = lib$spawn('new_proc dcl_proc',,mbxname,CLI$M_NOWAIT,,pid)

new_proc could then turn off verify, call dcl_proc, reset verify and exit.

Volker.
Wim Van den Wyngaert
Honored Contributor

Re: f$verify(0) from a program

But you can do a spawn with f$verify as command to change it (e.g. at startup of the program).

Wim
Wim
Volker Halle
Honored Contributor

Re: f$verify(0) from a program

Wim,

>But you can do a spawn with f$verify as
>command to change it (e.g. at startup of
>the program).

this would not turn off SET VERIFY in the main process, only in the sub-process, which would then exit immediately.

Volker.
Hein van den Heuvel
Honored Contributor

Re: f$verify(0) from a program

How about NOT feeding spawn the command file directly. Give it an input mailbox.
Send the 'f$verify'() first, then (probably!) send an $define sys$input sys$command, then feed it the @'file'?
Just a thought...

Or bulk-edit those command files already.
No big deal, possibly less work than reading these replies.

Hein.
dschwarz
Frequent Advisor

Re: f$verify(0) from a program

Great answers.

I think we will 'Bulk edit' the procedures and give Hein's idea a try.

Thank you very much.
Wim Van den Wyngaert
Honored Contributor

Re: f$verify(0) from a program

Oeps. Volker is right.

But you can pass @x y
and do the F$ver in x.com and then do @y in x.com

fwiw

Wim
Wim