mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-01-12 15:45:21 +08:00
ccc70d640b
and https://github.com/Unidata/netcdf-c/issues/708 Expand the NC_INMEMORY capabilities to support writing and accessing the final modified memory. Three new functions have been added: nc_open_memio, nc_create_mem, and nc_close_memio. The following new capabilities were added. 1. nc_open_memio() allows the NC_WRITE mode flag so a chunk of memory can be passed in and be modified 2. nc_create_mem() allows the NC_INMEMORY flag to be set to cause the created file to be kept in memory. 3. nc_close_mem() allows the final in-memory contents to be retrieved at the time the file is closed. 4. A special flag, NC_MEMIO_LOCK, is provided to ensure that the provided memory will not be freed or reallocated. Note the following. 1. If nc_open_memio() is called with NC_WRITE, and NC_MEMIO_LOCK is not set, then the netcdf-c library will take control of the incoming memory. This means that the original memory block should not be freed but the block returned by nc_close_mem() must be freed. 2. If nc_open_memio() is called with NC_WRITE, and NC_MEMIO_LOCK is set, then modifications to the original memory may fail if the space available is insufficient. Documentation is provided in the file docs/inmemory.md. A test case is provided: nc_test/tst_inmemory.c driven by nc_test/run_inmemory.sh WARNING: changes were made to the dispatch table for the close entry. From int (*close)(int) to int (*close)(int,void*).
23 lines
577 B
Makefile
23 lines
577 B
Makefile
# This is part of Unidata's netCDF package. Copyright 2005-2011, see
|
|
# the COPYRIGHT file for more information.
|
|
|
|
# This automake file generates the Makefile to build netCDF-4.
|
|
# Ed Hartnett
|
|
|
|
include $(top_srcdir)/lib_flags.am
|
|
|
|
libnetcdf4_la_CPPFLAGS = ${AM_CPPFLAGS}
|
|
|
|
# This is our output. The netCDF-4 convenience library.
|
|
noinst_LTLIBRARIES = libnetcdf4.la
|
|
libnetcdf4_la_SOURCES = nc4dispatch.c nc4attr.c nc4dim.c nc4file.c \
|
|
nc4grp.c nc4hdf.c nc4internal.c nc4type.c nc4var.c ncfunc.c error4.c \
|
|
nc4info.c nc4printer.c nc4mem.c nc4memcb.c
|
|
|
|
EXTRA_DIST = CMakeLists.txt
|
|
|
|
|
|
|
|
|
|
|