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

📄 io.h

📁 刻录光盘的程序
💻 H
字号:
/* @(#)io.h	2.9 98/09/05 Copyright 1986, 1995 J. Schilling *//* *	Copyright (c) 1986, 1995 J. Schilling *//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING.  If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */#include <mconfig.h>#include <standard.h>#include <unixstd.h>#include <fctldefs.h>#ifdef	NO_USG_STDIO#	ifdef	HAVE_USG_STDIO#		undef	HAVE_USG_STDIO#	endif#endif/* * speed things up... */#define	_openfd(name, omode)	(open(name, omode, 0666))#define	DO_MYFLAG		/* use local flags *//* * Flags used during fileopen(), ... by _fcons()/ _cvmod() */#define	FI_NONE		0x0000	/* no flags defined */#define	FI_READ		0x0001	/* open for reading */#define	FI_WRITE	0x0002	/* open for writing */#define	FI_BINARY	0x0004	/* open in binary mode */#define	FI_CREATE	0x0010	/* create if nessecary */#define	FI_TRUNC	0x0020	/* truncate file on open */#define	FI_APPEND	0x0040	/* append on each write */#define	FI_UNBUF	0x0080	/* dont't buffer io */#define	FI_CLOSE	0x1000	/* close file on error *//* * local flags */#define	_IONORAISE	01	/* do no raisecond() on errors */#define	_IOUNBUF	02	/* do unbuffered i/o */#ifdef	DO_MYFLAGstruct _io_flags {	FILE	*fl_io;		/* file pointer */	struct _io_flags	/* pointer to next struct */		*fl_next;	/* if more file pointer to same fd */	int	fl_flags;	/* my flags */};typedef	struct _io_flags _io_fl;extern	int	_io_glflag;	/* global default flag */extern	_io_fl	*_io_myfl;	/* array of structs to hold my flags */extern	int	_fl_max;	/* max fd currently in _io_myfl *//* *	if fileno > max *		expand *	else if map[fileno].pointer == 0 *		return 0 *	else if map[fileno].pointer == p *		return map[fileno].flags *	else *		search list */#define	flp(p)		(&_io_myfl[fileno(p)])#ifdef	MY_FLAG_IS_MACRO#define	my_flag(p)	((int)fileno(p) >= _fl_max ?			\				_io_get_my_flag(p) :			\			((flp(p)->fl_io == 0 || flp(p)->fl_io == p) ?	\				flp(p)->fl_flags :			\				_io_get_my_flag(p)))#else#define	my_flag(p)	_io_get_my_flag(p)#endif#define	set_my_flag(p,v) _io_set_my_flag(p, v)#define	add_my_flag(p,v) _io_add_my_flag(p, v)extern	int	_io_get_my_flag __PR((FILE *));extern	void	_io_set_my_flag __PR((FILE *, int));extern	void	_io_add_my_flag __PR((FILE *, int));#else	/* DO_MYFLAG */#define	my_flag(p)		_IONORAISE	/* Always noraise */#define	set_my_flag(p,v)			/* Ignore */#define	add_my_flag(p,v)			/* Ignore */#endif	/* DO_MYFLAG */#ifdef	HAVE_USG_STDIO/* * Define prototypes to verify if our interface is right */extern	int	_filbuf	__PR((FILE *));extern	int	_flsbuf	__PR((int, FILE *));#else/* * If we are on a non USG system we cannot down file pointers */#undef	DO_DOWN#endif#ifndef	DO_DOWN/* *	No stream checking */#define	down(f)#define	down1(f,fl1)#define	down2(f,fl1,fl2)#else/* *	Do stream checking (works only on USG stdio) * *	New version of USG stdio. *	_iob[] holds only a small amount of pointers. *	Aditional space is allocated. *	We may check only if the file pointer is != NULL *	and if iop->_flag refers to a stream with appropriate modes. *	If _iob[] gets expanded by malloc() we cannot check upper bound. */#define down(f)		((f) == 0 || (f)->_flag==0 ? \				(raisecond(_badfile, 0L),(FILE *)0) : (f))#define down1(f,fl1)	((f) == 0 || (f)->_flag==0 ? \					(raisecond(_badfile, 0L),(FILE *)0) : \				(((f)->_flag & fl1) != fl1 ? \					(raisecond(_badop, 0L),FILE *)0) : \					(f)))#define down2(f,fl1,fl2)((f) == 0 || (f)->_flag==0 ? \				(raisecond(_badfile, 0L),(FILE *)0) : \			(((f)->_flag & fl1) != fl1 && \			 ((f)->_flag & fl2) != fl2 ? \				(raisecond(_badop, 0L),(FILE *)0) : \				(f)))#endif	/* DO_DOWN */extern	char	_badfile[];extern	char	_badmode[];extern	char	_badop[];

⌨️ 快捷键说明

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