HP OpenVMS Systemsask the wizard |
The Question is: Hi Wizard after a while i have connected my sockets using (C TCP/IP) and exhanged data, i receive a message error :65535, and when i looked for the means of this number in the errno.h file, i understant that this number cover all error message not translated to VMS . The Question is : how can i find explanation for this case of error. Thank You. Abdel . The Answer is :
When errno is found set to EVMSERR, then the OpenVMS condition value is
available to you in the vaxc$errno variable. vaxc$errno is valid when
and only when errno is EVMSERR, and is otherwise undefined.
Both the traditional errno and the OpenVMS-specific vaxc$errno variables
are declared in the errno.h file provided with the Compaq C compiler.
In general, the best way to handle error values is via the perror() and
and strerror(). These calls correctly handle the various combinations
of errno and vaxc$errno. An example of these calls follows:
$ run x
1?: not enough core
2?: non-translatable vms error code: 0x124
%system-f-insfmem, insufficient dynamic memory
3?: not enough core
$ type x.c
#include <errno.h>
#include <stdio.h>
#include <ssdef.h>
main()
{
errno = ENOMEM;
vaxc$errno = 0;
perror("1?");
errno = EVMSERR;
vaxc$errno = SS$_INSFMEM;
perror("2?");
errno = ENOMEM;
vaxc$errno = SS$_INSFMEM;
perror("3?");
return SS$_NORMAL;
}
|