Sujet : Re: C Error Number to Symbol
De : arne (at) *nospam* vajhoej.dk (Arne Vajhøj)
Groupes : comp.os.vmsDate : 19. Mar 2025, 19:20:43
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vrf1tr$1cg4c$1@dont-email.me>
References : 1 2 3 4 5
User-Agent : Mozilla Thunderbird
On 3/19/2025 12:08 PM, Craig A. Berry wrote:
On 3/19/25 9:29 AM, Michael Brown wrote:
On 20/3/25 00:38, Craig A. Berry wrote:
I _think_ what he wants is some kind of translation table between errno
values and VMS condition codes. For example, starting with errno of
ESRCH and getting to RMS$_RNF or vice versa. I'm not aware of any such
table, and if there were, it wouldn't be a one-to-one mapping.
>
yes if I get a return status of 98994 I would like to be able to look it up and get "RMS$_RNF" to output that in my error handling routine.
No, I guessed wrong. You are not dealing with errno at all but rather
VMS condition code to message lookup, which, as you've now discovered,
has already been fully answered.
I was starting to think that it was about translating from
numeric value to symbolic name, which is a weird one.
$ type moremsgfun.pas
[inherit('sys$library:pascal$lib_routines')]
program moremsgfun(input,output);
type
pstr = varying [255] of char;
var
fac, id, name : pstr;
code : integer;
begin
code := 98962;
lib$sys_getmsg(code, fac.length, fac.body, 8);
lib$sys_getmsg(code, id.length, id.body, 2);
name := substr(fac, 2) + '$_' + substr(id, 2);
writeln(code:1, ' = ', name);
end.
$ pas moremsgfun
$ lin moremsgfun
$ run moremsgfun
98962 = RMS$_FNF
Arne