Walter,
Since I just finished pulling a pile of hair out on a similar, although not
identical, problem yesterday he might look to see if things are the same. In
Pro*C we use a data type called a VARCHAR inside the Oracle declare section.
Something like:
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR name[50];
EXEC SQL END DECLARE SECTION;
When you run it through the precompiler that changes to:
struct
{
char arr[50];
int len;
}name;
A common problem is to forget that 'name' actually has to be referenced as
'name.arr' in C. My problem was:
sprintf(msg, "%s\0", name);
Instead of
sprintf(msg, "%s\0", name.arr);
Also Pro*C does NOT null terminate character strings when they are returned. A
common thing to do is: name.arr[name.len] = '\0'. Your friend may not have null
terminated things, although since it's an fgets() call it's probably not that.
Probably more like:
fgets(name, sizeof(name), fp);
Instead of:
fgets(name.arr, sizeof(name.arr), fp);
Dick Goulet
____________________Reply Separator____________________
Author: "Kirsch; Walter J (Northrop Grumman)" <[EMAIL PROTECTED]>
Date: 12/13/2002 8:37 AM
>From a fellow employee of mine:
"I am in the process of upgrading from an Oracle 7.3.4 environment using
Pro*C and an HP 32-bit C Compiler (version A.10.32) to an Oracle 8.1.7
64-bit environment using 64-bit Pro*C and a GNU (gcc) 64-bit C Compiler.
All software is on an HP UNIX version 11.00 box.
Specifically, during runtime I am experiencing a SEGMENTATION Fault on the
/usr/lib/libc.2 library when the program executes a fgets() C-statement.
"
Is this obvious to the initiated? Thanks for any help.
The only thing worse in the world than being talked about is not being
talked about.
-- Oscar Wilde
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Kirsch, Walter J (Northrop Grumman)
INET: [EMAIL PROTECTED]
Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author:
INET: [EMAIL PROTECTED]
Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).