mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-03 08:01:25 +08:00
4636584d5b
re: https://github.com/Unidata/netcdf-c/issues/1154 Inadvertently, the behavior of NC_DISKLESS with nc_create() was changed in release 4.6.1. Previously, the NC_WRITE flag needed to be explicitly used with NC_DISKLESS in order to cause the created file to be persisted to disk. Additional analyis indicated that the current NC_DISKLESS implementation was seriously flawed. This PR attempts to clean up and regularize the situation with respect to NC_DISKLESS control. One important aspect of diskless operation is that there are two different notions of write. 1. The file is read-write vs read-only when using the netcdf API. 2. The file is persisted or not to disk at nc_close(). Previously, these two were conflated. The rules now are as follows. 1. NC_DISKLESS + NC_WRITE means that the file is read/write using the netcdf API 2. NC_DISKLESS + NC_PERSIST means that the file is persisted to a disk file at nc_close. 3. NC_DISKLESS + NC_PERSIST + NC_WRITE means both 1 and 2. The NC_PERSIST flag is new and takes over the obsolete NC_MPIPOSIX flag. NC_MPIPOSIX is still defined, but is now an alias for the NC_MPIIO flag. It is also now the case that for netcdf-4, NC_DISKLESS is independent of NC_INMEMORY and in fact it is an error to specify both flags simultaneously. Finally, the MMAP code was fixed to use NC_PERSIST as well. Also marked MMAP as deprecated. Also added a test case to test various combinations of NC_DISKLESS, NC_PERSIST, and NC_WRITE. This PR affects a number of files and especially test cases that used NC_DISKLESS. Misc. Unrelated fixes 1. fixed some warnings in ncdump/dumplib.c |
||
---|---|---|
.. | ||
u | ||
CMakeLists.txt | ||
crc32.c | ||
crc32.h | ||
datt.c | ||
dattget.c | ||
dattinq.c | ||
dattput.c | ||
dauth.c | ||
dcompound.c | ||
dcopy.c | ||
ddim.c | ||
ddispatch.c | ||
defcheck.c | ||
denum.c | ||
derror.c | ||
dfile.c | ||
dfilter.c | ||
dgroup.c | ||
dinternal.c | ||
dnotnc3.c | ||
dnotnc4.c | ||
doffsets.c | ||
dopaque.c | ||
dparallel.c | ||
drc.c | ||
dreadonly.c | ||
dstring.c | ||
dtype.c | ||
dutf8.c | ||
dutil.c | ||
dv2i.c | ||
dvar.c | ||
dvarget.c | ||
dvarinq.c | ||
dvarput.c | ||
dvlen.c | ||
dwinpath.c | ||
heap | ||
json.c | ||
Make0 | ||
Makefile.am | ||
nc.c | ||
ncaux.c | ||
ncbytes.c | ||
nchashmap.c | ||
nclist.c | ||
nclistmgr.c | ||
nclog.c | ||
ncsettings.hdr | ||
nctime.c | ||
ncuri.c | ||
netcdf.m4 | ||
stubdef.c | ||
test_ncuri.c | ||
test_pathcvt.c | ||
u8.c | ||
u8.h | ||
utf8proc_data.c | ||
utf8proc.c | ||
utf8proc.h |