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

📄 ntfile.c

📁 bind-3.2.
💻 C
字号:
/* * Copyright (C) 2001  Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *//* $Id: ntfile.c,v 1.5 2001/07/16 04:09:45 gson Exp $ *//* * This file has been necessitated by the fact that the iov array is local * to the module, so passing the FILE ptr to a file I/O function in a * different module or DLL will cause the application to fail to find the * I/O channel and the application will terminate. The standard file I/O * functions are redefined to call these routines instead and there will * be just the one iov to deal with. */#include <config.h>#include <io.h>#include <isc/ntfile.h>FILE *isc_ntfile_fopen(const char *filename, const char *mode) {	return (fopen(filename, mode));}int isc_ntfile_fclose(FILE *f) {	return (fclose(f));}int isc_ntfile_fseek(FILE *f, long offset, int whence) {	return (fseek(f, offset, whence));}size_t isc_ntfile_fread(void *ptr, size_t size, size_t nmemb, FILE *f) {	return (fread(ptr, size, nmemb, f));}size_t isc_ntfile_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *f) {	int r;	r = fwrite(ptr, size, nmemb, f);	fflush(f);	return (r);}int isc_ntfile_flush(FILE *f) {	return (fflush(f));}int isc_ntfile_sync(FILE *f) {	return (_commit(_fileno(f)));}FILE * isc_ntfile_getaddress(int r) {	return (&_iob[r]);}int isc_ntfile_printf(const char *format, ...) {	int r;	FILE *fp = stdout;	va_list ap;	va_start(ap, format);	r = vfprintf(fp, format, ap);	va_end(ap);	fflush(fp);	return (r);}int isc_ntfile_fprintf(FILE *fp, const char *format, ...) {	int r;	va_list ap;	va_start(ap, format);	r = vfprintf(fp, format, ap);	va_end(ap);	fflush(fp);	return (r);}int isc_ntfile_vfprintf(FILE *fp, const char *format, va_list alist) {	int r;	r = vfprintf(fp, format, alist);	fflush(fp);	return (r);}intisc_ntfile_fputc(int iv, FILE *fp) {	int r;	r = fputc(iv, fp);	fflush(fp);	return (r);}intisc_ntfile_fputs(const char *bf, FILE *fp) {	int r;	r = fputs(bf, fp);	fflush(fp);	return (r);}intisc_ntfile_fgetc(FILE *fp) {	return (fgetc(fp));}intisc_ntfile_fgetpos(FILE *fp, fpos_t *pos) {	return (fgetpos(fp, pos));}char * isc_ntfile_fgets(char *ch, int r, FILE *fp) {	return (fgets(ch,r, fp));}intisc_ntfile_getc(FILE *fp) {	return (getc(fp));}FILE *isc_ntfile_freopen(const char *path, const char *mode, FILE *fp) {	return (freopen(path, mode,fp));}FILE *isc_ntfile_fdopen(int handle, const char *mode) {	return (fdopen(handle, mode));}/* * open(), close(), read(), write(), fsync() * sockets are file descriptors in UNIX.  This is not so in NT * We keep track of what is a socket and what is an FD to * make everything flow right. */int isc_ntfile_open(const char *fn, int flags, ...){	va_list args;	int pmode;	int fd; 	/* Extract the cmd parameter */	va_start(args, flags);	pmode = va_arg(args, int);	fd = _open(fn, flags, pmode);	return fd;}intisc_ntfile_close(int fd){	return (_close(fd));}int isc_ntfile_read(int fd, char *buf, int len) {	return (_read(fd, buf, len));}intisc_ntfile_write(int fd, char *buf, int len){	int r;	r = _write(fd, buf, len);	_commit(fd);	return (r);}

⌨️ 快捷键说明

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