[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem with NcFile::add_var
- Subject: Re: Problem with NcFile::add_var
- Date: Fri, 22 Apr 1994 13:24:02 -0600
> Organization: NOAA/FSL
> Keywords: 199404221711.AA16892
Hi Tom,
> We recently ported our application to a Hewlett Packard system and I've
> bumped into a new problem.
>
> When I call NcFile::add_var I get different behavior depending on the
> path passed to the NcOldFile constructor. If the path contains no
> directories, (the .cdf file is in the local directory) everything works
> fine. But if the path includes some directory I get a NULL pointer
> back from add_var.
>
> For example,
>
> If the path is defined as "myDatabase.cdf", no problem.
>
> If the path is defined as "/home/whatever/myDatabase.cdf", add_var
> returns a NULL.
>
> It doesn't matter if the file is in the current directory or not. If
> there is a directory in the path add_var won't work. I should mention
> that the database opens just fine in either case.
This is just a guess, but I'll bet the problem is in the netCDF C library on
HP and would be fixed by rebuilding it with the patch described in the
following small answer to a netCDF FAQ:
13. Is there a known bug with netCDF under HPUX?
The current version of the HPUX operating system provides an incorrect
definition of the FILENAME_MAX macro. This results in the symptom that
the ncredef() function does not work properly when invoked from a
directory other than the one the open netCDF file is in. A workaround is
to apply the following patch to the file netcdf/libsrc/local_nc.h before
building the library:
diff -c -r1.39 local_nc.h
*** /tmp/T0a004uN Tue Mar 8 11:14:12 1994
--- local_nc.h Wed Feb 9 15:56:36 1994
***************
*** 12,17 ****
--- 12,21 ----
#include <stddef.h> /* size_t */
#include <stdio.h> /* FILENAME_MAX */
+ #if defined(_HPUX_SOURCE) && FILENAME_MAX < 255
+ /* Arrgh. HP thinks FILENAME_MAX is _POSIX_NAME_MAX */
+ #undef FILENAME_MAX
+ #endif
#ifndef FILENAME_MAX
#define FILENAME_MAX 255
#endif
Let me know if this doesn't fix the problem.
--Russ