[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DOS implementation of netCDF, cont.
- Subject: Re: DOS implementation of netCDF, cont.
- Date: Tue, 17 Jun 1997 17:06:11 -0600 (MDT)
>Date: Mon, 16 Jun 1997 12:30:10 -0400 (EDT)
>From: address@hidden
>Organization: KEO Consultants
>To: address@hidden
>Subject: DOS implementation of netCDF, cont.
>Keywords: 199705081559.JAA25699
> Making a lot of progress on the DOS/Win16 port of the NetCDF 3.3 library.
>
> I'm currently down to one error!
>
> In line 1531 of ncx.c, the #error line:
>
> "x_size_t implementation"
>
> In DOS/Win16, size_t is defined as unsigned int which is 2 bytes.
>
> In your ncx.h file, X_SIZEOF_SIZE_T is set to 4 bytes, and the comment
> suggests that this is necessary for the implementation of the netcdf
> library.
>
> Does this mean that I can't implement the library in DOS/Win16 at all?
X_SIZEOF_SIZE_T is the size of an "external" size_t and is invariant.
You should not change any of these X_ values, or anything else in ncx.h,
in the process of porting.
The #error means that versions of ncx_get_size_t() and ncx_put_size_t()
needs to be implemented which handle the case of a 16 bit size_t.
This is actually pretty straightforward. For ncx_get_size_t()
Get a 32 bit long
Check if it > SIZEOF_SIZE_T, if so set error return to NC_ERANGE.
assign the long to the size_t return parameter *lp.
Inverse process for ncx_put_size_t(), except you know you can never exceed
the external range.
You may run into a similar situation for the off_t functions.
In practice, this means that netcdf array lengths are limited by the size_t
on the system.
-glenn