⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ncio.h

📁 一个用来实现偏微分方程中网格的计算库
💻 H
字号:
/* *	Copyright 1996, University Corporation for Atmospheric Research *	See netcdf/COPYRIGHT file for copying and redistribution conditions. *//* $Id: ncio.h 2501 2007-11-20 02:33:29Z benkirk $ */#ifndef _NCIO_H_#define _NCIO_H_#include <stddef.h>	/* size_t */#include <sys/types.h>	/* off_t */#include "netcdf.h"typedef struct ncio ncio;	/* forward reference *//* * A value which is an invalid off_t */#define OFF_NONE  ((off_t)(-1))/* * Flags used by the region layer, *  'rflags' argument to ncio.rel() and ncio.get(). */#define RGN_NOLOCK	0x1	/* Don't lock region.				 * Used when contention control handled				 * elsewhere.				 */#define RGN_NOWAIT	0x2	/* return immediate if can't lock, else wait */#define RGN_WRITE	0x4	/* we intend to modify, else read only */#define RGN_MODIFIED	0x8	/* we did modify, else, discard *//* * The next four typedefs define the signatures * of function pointers in struct ncio below. * They are not used outside of this file and ncio.h, * They just make some casts in the ncio.c more readable. */	/*	 * Indicate that you are done with the region which begins	 * at offset. Only reasonable flag value is RGN_MODIFIED.	 */typedef int ncio_relfunc(ncio *const nciop,		 off_t offset, int rflags);	/*	 * Request that the region (offset, extent)	 * be made available through *vpp.	 */typedef int ncio_getfunc(ncio *const nciop,			off_t offset, size_t extent,			int rflags,			void **const vpp);	/*	 * Like memmove(), safely move possibly overlapping data.	 * Only reasonable flag value is RGN_NOLOCK.	 */typedef int ncio_movefunc(ncio *const nciop, off_t to, off_t from,			size_t nbytes, int rflags);	/*	 * Write out any dirty buffers to disk and	 * ensure that next read will get data from disk.	 */typedef int ncio_syncfunc(ncio *const nciop);	/*	 * Don't call this. 	 * Internal function called at close to	 * free up anything hanging off pvt;	 */typedef void ncio_freefunc(void *const pvt);/* Get around cplusplus "const xxx in class ncio without constructor" error */#if defined(__cplusplus)#define NCIO_CONST#else#define NCIO_CONST const#endif/* * netcdf i/o abstraction */struct ncio {	/*	 * A copy of the ioflags argument passed in to ncio_open()	 * or ncio_create().	 */	int ioflags;	/*	 * The file descriptor of the netcdf file.	 * This gets handed to the user as the netcdf id.	 */	NCIO_CONST int fd;	/* member functions do the work */	ncio_relfunc *NCIO_CONST rel;	ncio_getfunc *NCIO_CONST get;	ncio_movefunc *NCIO_CONST move;	ncio_syncfunc *NCIO_CONST sync;	ncio_freefunc *NCIO_CONST free; /* Implementation private */	/*	 * A copy of the 'path' argument passed in to ncio_open()	 * or ncio_create(). Used by ncabort() to remove (unlink)	 * the file and by error messages.	 */	const char *path;	/* implementation private stuff */	void *NCIO_CONST pvt;};#undef NCIO_CONSTextern intncio_create(const char *path, int ioflags,	size_t initialsz,	off_t igeto, size_t igetsz, size_t *sizehintp,	ncio **nciopp, void **const igetvpp);extern intncio_open(const char *path,	int ioflags,	off_t igeto, size_t igetsz, size_t *sizehintp,	ncio **nciopp, void **const igetvpp);extern int ncio_close(ncio *nciop, int doUnlink);extern intncio_filesize(ncio *nciop, off_t *filesizep);extern intncio_pad_length(ncio *nciop, off_t length);#endif /* _NCIO_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -