Dave, In a word: Not a good idea.
That define means that the declaration of the offending function is omitted and you fall back on the default of all undeclared functions being something returning int, but that suppresses type checking of the function arguments. You need to convince the compiler that you are compiling for the level that includes the code for the function. 4104 seems to be the operative here. So a specify the appropriate TARGET parameter to the compiler. Then find out why your compiler installation does not default to TARGET CURRENT as it should and fix that. j. On 1/25/07, Dave Jones <[EMAIL PROTECTED]> wrote:
Thanks to the help and advice of the good folks on this list, I have managed to solve my C compiler problem. Turns out that I need to do a #define _NO_NEW_FUNC_CHECK at the beginning of the code. That tells the C compler (C/C++ for z/VM, btw) to actually include the correct code to invoked the "getaddrinfo" function, instead of generating a dummy external structure with the name of "getaddrinfo". The dummy structure was the actual source of the error message the C compiler produced. Unfortunately, the _NO_NEW_FUNC_CHECK directive is not documented anywhere in either the C or LE manuals, and I don't have a warm fuzzy feeling about having to use it. Maybe some one from C or LE development can add to my understanding of why it's there and what it's meant to do... The good news is that the code now compiles, loads and runs as I expect it to. Thanks again, and have a good one. DJ William Moy wrote: > Hi Dave, > > Have you tried c89? I cut and paste your code and compiled with > c89 successfully. Here is screenshot. > > Best Regards, > Bill Moy > ----- Forwarded by William Moy/Endicott/IBM on 01/24/2007 11:08 AM ----- > > *Dave Jones <[EMAIL PROTECTED]>* > Sent by: The IBM z/VM Operating System > <IBMVM@LISTSERV.UARK.EDU> > > 01/23/2007 07:11 PM > Please respond to > The IBM z/VM Operating System > <IBMVM@LISTSERV.UARK.EDU> > > > > To > > IBMVM@LISTSERV.UARK.EDU > > cc > > > Subject > > a C language question.... > > > > > I know that this is the z/VM forum, but I have a question about > compiling a C program on CMS, so I'm hoping someone here might know the > answer..... > > I've written a short C test program that invokes the new "getaddrinfo" C > library function. However, the z/VM C/C++ compiler complains with the > following error message when I attempt to compile my test program: > > > #define _OPEN_SYS_SOCK_IPV6 > > #include <netdb.h> > > #include <sys/socket.h> > > #include <stdio.h> > > #include <errno.h> > > #include <stdlib.h> > > #include <string.h> > > struct addrinfo hints, *res, *res0; > > int main(int argc, char *argv ) { > > int error; > > int s; > > char *name = "www.cacert.org"; > > char *port = "80"; > > const char *cause = NULL; > > > > memset(&hints, 0, sizeof(hints)); > > hints.ai_family = PF_UNSPEC; > > hints.ai_socktype = SOCK_STREAM; > > error = getaddrinfo(name, port, &hints, &res0); > > ...................a.......................................... > > =====> a - CCN3023 Expecting function or pointer to function. > > Can anyone tell me what I'm doing wrong (besides the obvious fact that I > am reduced to using C as a programming language, which has to be one of > the worst tools ever devised..the use of C has set back good software > development by 20 years, imho.) > > Thanks for any help and have a good one. > > DJ