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

📄 sds_fdb.c

📁 This Source-Navigator, an IDE for C/C++/Fortran/Java/Tcl/PHP/Python and a host of other languages.
💻 C
字号:
/* $Header: /cvsroot/sourcenav/src/snavigator/demo/c++_demo/sds/sds_fdb.c,v 1.1.1.1 2002/04/18 23:35:30 mdejong Exp $ *//************************************************************************** *                 ****** ISTK Release 1.2 *****                          * *                                                                        * *                                                                        * * This code has been produced by numerous authors at the CERN centre for * * high energy physics, Geneve, Switzerland, at the SSC laboratory in     * * Dallas, Texas, USA and at the Lawrence Berekeley Laboratory in         * * California, USA.                                                       * * The latter two institutions perform work under US Government contract. * * The intent of the work is to provide useful code for people who need   * * it, with an emphasis on free and collaborative exchange of ideas,      * * techniques and implementations.                                        * * Please read the disclaimer and copyright notices contained in the ISTK * * distribution and in distributed applications.                          * *                                                                        * **************************************************************************//* Reference release  Aug 10 1991 - C G Saltmarsh *//* Has the basics used at CDG & SSC 1988-1991, plus vxworks   support*/#include <stdlib.h>#include <string.h>#ifndef vms#include <unistd.h>#endif#ifndef VXWORKS#include <memory.h>#endif#if defined(vms)#include "sdsgen.h"#include "sds_externs.h"#else#include "Sds/sdsgen.h"#include "Sds/sds_externs.h"#endifstatic	int	db_object[MAX_SDS];static	long	db_next_row[MAX_SDS];/************************************************************************/sds_handlesds_dbtab_make(nrows,basename,tlist,select_list)int	nrows;char	*select_list,*basename;struct type_list	*tlist;/************************************************************************/{	sds_handle	sds, obj;	unsigned long	tlist_index;	if (!sds_initialised())		sds_init();	sds = sds_new(basename);  if (!sds)	{		sds_perror("Making table sds:");		exit(1);	}	tlist_index = sds_define_structure(sds,tlist,select_list);	obj = sds_declare_structure(sds,			SDS_ALLOCATE,			basename,			nrows,			tlist_index);  if (!obj)	{		sds_perror("Making table sds:");		exit(1);	}	db_object[sds] = obj;	db_next_row[sds] = 0;	if (!(sds = sds_ass(sds,basename,SDS_PROC_MEM)))	{		sds_perror("Making table sds:");		exit(1);	}	return(sds);}/************************************************************************/sds_handlesds_dbrow_ins(sds,pointer)sds_handle	sds;char	*pointer;/************************************************************************/{	long	next_row = db_next_row[sds];	int	object = db_object[sds];	char	*sptr;	struct direc	*dptr = sds_direc(sds);	if (next_row > dptr[object].nelems)	{			sds_push_error(SDS_NO_MEM, SDS_ERROR,"No space for all these rows");			return 0L;	}	sptr = (char *)sds_getp(dptr,(long)object) +										next_row * dptr[object].elemsz;	memcpy(sptr,pointer,(int)dptr[object].elemsz);	db_next_row[sds]++;	return 1L;}

⌨️ 快捷键说明

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