Deutsch   English   Français   Italiano  
<cf0fd2051b47046cca45926ef1fb1e73c87024df@i2pn2.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.quux.org!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: Michael Brown <brown_mi@decuserve.org>
Newsgroups: comp.os.vms
Subject: Re: Error Number to Symbol
Date: Thu, 20 Mar 2025 02:34:04 +1100
Organization: House Harris Software
Message-ID: <cf0fd2051b47046cca45926ef1fb1e73c87024df@i2pn2.org>
References: <44eb1a056232d61f311df18d9fe1d0084c5383ca@i2pn2.org>
 <vrb21i$1sjec$2@dont-email.me> <vrbu32$2jno3$1@dont-email.me>
 <vrbucm$2jno3$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 19 Mar 2025 15:34:05 -0000 (UTC)
Injection-Info: i2pn2.org;
	logging-data="859720"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="GwTNKfv9ol/2gq1jYpHTGGj3rZP9lYPWWhlaSWafPM8";
User-Agent: Mozilla Thunderbird
Content-Language: en-US
X-Spam-Checker-Version: SpamAssassin 4.0.0
In-Reply-To: <vrbucm$2jno3$2@dont-email.me>
Bytes: 2887
Lines: 58



This is gold!, thank you for this question fully answered. I can polish 
up my error handling routines now.




On 19/3/25 01:01, Arne Vajhøj wrote:
> On 3/18/2025 9:56 AM, Arne Vajhøj wrote:
>> On 3/18/2025 1:58 AM, Lawrence D'Oliveiro wrote:
>>> On Tue, 18 Mar 2025 16:24:46 +1100, Michael Brown wrote:
>>>> Working in C, how do you return the RMS$_CODE symbol for any given 
>>>> error
>>>> number as returned from any operation?
>>>
>>> The $GETMSG system service comes to mind. I see there is a library 
>>> routine
>>> LIB$SYS_GETMSG, not sure what that does that the system service call 
>>> does
>>> not.
>>
>> Classic LIB$ SYS$ difference in API style:
>>
>>                                    SYS$                LIB$
>> optional arguments         require placeholder   can be omitted
>> readonly integer argument       by value          by reference
>> string arguments            fixed length only      dynamic ok
> 
> In C it is just different:
> 
> #include <stdio.h>
> #include <stdint.h>
> 
> #include <descrip.h>
> #include <lib$routines.h>
> #include <starlet.h>
> 
> int main(int argc, char *argv[])
> {
>      char msg[256];
>      int32_t code, stat;
>      int16_t msglen;
>      $DESCRIPTOR(msgdesc, msg);
>      code = 98962;
>      stat = lib$sys_getmsg(&code, &msglen, &msgdesc);
>      msg[msglen] = 0;
>      printf("stat=%d msg=|%s|\n", stat, msg);
>      stat = sys$getmsg(code, &msglen, &msgdesc, 0, 0);
>      msg[msglen] = 0;
>      printf("stat=%d msg=|%s|\n", stat, msg);
>      return 0;
> }
> 

-- 
House Harris Software.
Making the world a safer place for our products.
https://eisner.decus.org/~brown_mi