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

📄 nextstep.c

📁 postgresql8.3.4源码,开源数据库
💻 C
字号:
/* $PostgreSQL: pgsql/src/backend/port/dynloader/nextstep.c,v 1.6 2006/03/11 04:38:31 momjian Exp $ */#include "postgres.h"#include "mach-o/rld.h"#include "streams/streams.h"static char *lastError = NULL;static NXStream *OpenError(){	return NXOpenMemory(NULL, 0, NX_WRITEONLY);}static voidCloseError(NXStream * s){	if (s)		NXCloseMemory(s, NX_FREEBUFFER);}static voidTransferError(NXStream * s){	char	   *buffer;	int			len,				maxlen;	if (lastError)		free(lastError);	NXGetMemoryBuffer(s, &buffer, &len, &maxlen);	lastError = malloc(len + 1);	strcpy(lastError, buffer);}void *next_dlopen(char *name){	int			rld_success;	NXStream   *errorStream;	char	   *result = NULL;	char	  **p;	errorStream = OpenError();	p = calloc(2, sizeof(void *));	p[0] = name;	rld_success = rld_load(errorStream, NULL, p, NULL);	free(p);	if (!rld_success)	{		TransferError(errorStream);		result = (char *) 1;	}	CloseError(errorStream);	return result;}intnext_dlclose(void *handle){	return 0;}void *next_dlsym(void *handle, char *symbol){	NXStream   *errorStream = OpenError();	char		symbuf[1024];	unsigned long symref = 0;	snprintf(symbuf, sizeof(symbuf), "_%s", symbol);	if (!rld_lookup(errorStream, symbuf, &symref))		TransferError(errorStream);	CloseError(errorStream);	return (void *) symref;}char *next_dlerror(void){	return lastError;}

⌨️ 快捷键说明

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