亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dos.c

?? TCP_IPprotocol.rar
?? C
字號:
#include <io.h>
#include <dos.h>
#include <errno.h>
#include <fcntl.h>
#include "stdio.h"
#include "global.h"

/* Table for mapping MS-DOS errors to UNIX errno values */
static int _ioerr[] = {
    0,			/*  0 - OK		     */
    EINVAL,		/*  1 - e_badFunction	     */
    ENOENT,		/*  2 - e_fileNotFound	     */
    ENOENT,		/*  3 - e_pathNotFound	     */
    EMFILE,		/*  4 - e_tooManyOpen	     */
    EACCES,		/*  5 - e_accessDenied	     */
    EBADF,		/*  6 - e_badHandle	     */
    ENOMEM,		/*  7 - e_mcbDestroyed	     */
    ENOMEM,		/*  8 - e_outOfMemory	     */
    ENOMEM,		/*  9 - e_badBlock	     */
    E2BIG,		/* 10  e_badEnviron	    */
    ENOEXEC,		/* 11  e_badFormat	    */
    EACCES,		/* 12  e_badAccess	    */
    EINVAL,		/* 13  e_badData	    */
    EFAULT,		/* 14  reserved		    */
    EXDEV,		/* 15  e_badDrive	    */
    EACCES,		/* 16  e_isCurrentDir	    */
    ENOTSAM,		/* 17  e_notSameDevice	    */
    ENOENT,		/* 18  e_noMoreFiles	    */
    EROFS,		/* 19  e_readOnly	    */
    ENXIO,		/* 20  e_unknownUnit	    */
    EBUSY,		/* 21  e_notReady	    */
    EIO,		/* 22  e_unknownCommand     */
    EIO,		/* 23  e_dataError	    */
    EIO,		/* 24  e_badRequestLength   */
    EIO,		/* 25  e_seekError	    */
    EIO,		/* 26  e_unknownMedia	    */
    ENXIO,		/* 27  e_sectorNotFound     */
    EBUSY,		/* 28  e_outOfPaper	    */
    EIO,		/* 29  e_writeFault	    */
    EIO,		/* 30  e_readFault	    */
    EIO,		/* 31  e_generalFault	    */
    EACCES,		/* 32  e_sharing	    */
    EACCES,		/* 33  e_lock		    */
    ENXIO,		/* 34  e_diskChange	    */
    ENFILE,		/* 35  e_FCBunavailable     */
    ENFILE,		/* 36  e_sharingOverflow    */
    EFAULT, EFAULT,
    EFAULT, EFAULT,
    EFAULT, EFAULT,
    EFAULT, EFAULT,
    EFAULT, EFAULT,
    EFAULT, EFAULT,
    EFAULT,		/* 37-49  reserved	    */
    ENODEV,		/* 50  e_networkUnsupported */
    EBUSY,		/* 51  e_notListening	    */
    EEXIST,		/* 52  e_dupNameOnNet	    */
    ENOENT,		/* 53  e_nameNotOnNet	    */
    EBUSY,		/* 54  e_netBusy	    */
    ENODEV,		/* 55  e_netDeviceGone	    */
    EAGAIN,		/* 56  e_netCommandLimit    */
    EIO,		/* 57  e_netHardError	    */
    EIO,		/* 58  e_wrongNetResponse   */
    EIO,		/* 59  e_netError	    */
    EINVAL,		/* 60  e_remoteIncompatible */
    EFBIG,		/* 61  e_printQueueFull     */
    ENOSPC,		/* 62  e_printFileSpace     */
    ENOENT,		/* 63  e_printFileDeleted   */
    ENOENT,		/* 64  e_netNameDeleted     */
    EACCES,		/* 65  e_netAccessDenied    */
    ENODEV,		/* 66  e_netDeviceWrong     */
    ENOENT,		/* 67  e_netNameNotFound    */
    ENFILE,		/* 68  e_netNameLimit	    */
    EIO,		/* 69  e_netBIOSlimit	    */
    EAGAIN,		/* 70  e_paused		    */
    EINVAL,		/* 71  e_netRequestRefused  */
    EAGAIN,		/* 72  e_redirectionPaused  */
    EFAULT, EFAULT,
    EFAULT, EFAULT,
    EFAULT, EFAULT,
    EFAULT,		/* 73- 79  reserved	    */
    EEXIST,		/* 80  e_fileExists	    */
    EFAULT,		/* 81  reserved		    */
    ENOSPC,		/* 82  e_cannotMake	    */
    EIO,		/* 83  e_failInt24	    */
    ENFILE,		/* 84  e_redirectionLimit   */
    EEXIST,		/* 85  e_dupRedirection     */
    EPERM,		/* 86  e_password	    */
    EINVAL,		/* 87  e_parameter	    */
    EIO,		/* 88  e_netDevice	    */
};
#define	NERROR	89

/* Reference count table for open file descriptors */
unsigned *Refcnt;

int
_creat(file,mode)
const char *file;	/* File name to create */
int mode;		/* Ignored */
{
	union REGS regs;
	struct SREGS segregs;
	int fd;

	segregs.ds = FP_SEG(file);
	regs.x.dx = FP_OFF(file);
	regs.x.cx = 0;	/* Normal attributes */
	regs.h.ah = 0x3c;
	intdosx(&regs,&regs,&segregs);
	fd = regs.x.ax;
	if(regs.x.cflag){
		if(fd < NERROR)
			errno = _ioerr[fd];
		return -1;
	}
	Refcnt[fd] = 1;
	return fd;	/* Return handle */
}
int
_open(file,mode)
const char *file;
int mode;
{
	union REGS regs;
	struct SREGS segregs;
	int dosmode,fd;

	if(mode & O_TRUNC){
		remove(file);
		mode |= O_CREAT;
	}
	/* Translate unix to MS-DOS open modes */
	switch(mode & (O_RDONLY|O_WRONLY|O_RDWR)){
	case O_RDONLY:
		dosmode = 0;
		break;
	case O_WRONLY:
		dosmode = 1;
		break;
	case O_RDWR:
		dosmode = 2;
		break;
	default:
		errno = EINVAL;
		return -1;
	}
	if(mode & O_EXCL)
		dosmode |= 0x10;
	
	segregs.ds = FP_SEG(file);
	regs.x.dx = FP_OFF(file);
	regs.h.al = dosmode;
	regs.h.ah = 0x3d;
	intdosx(&regs,&regs,&segregs);
	fd = regs.x.ax;
	if(regs.x.cflag){
		if(fd < NERROR){
			errno = _ioerr[fd];
			if(errno == ENOENT && (mode & O_CREAT))
				return _creat(file,0);
		}
		return -1;
	}
	Refcnt[fd] = 1;
	return fd;	/* Return handle */
}
/* Dup a file descriptor. Rather than allocating a new descriptor,
 * as in UNIX or MS-DOS, we maintain a reference count table so we
 * can return the same descriptor that is passed. This saves precious
 * file descriptor space.
 */
int
dup(fd)
int fd;
{
	if(fd < 0 || _fd_type(fd) != _FL_FILE){
		errno = EINVAL;	/* Valid only on files */
		return -1;
	}
	fd = _fd_seq(fd);
	if(fd >= Nfiles || Refcnt[fd] == 0){
		errno = EINVAL;
		return -1;
	}
	Refcnt[fd]++;
	return fd;
}

int
_close(fd)
int fd;
{
	union REGS regs;

	if(fd < 0 || _fd_type(fd) != _FL_FILE){
		errno = EINVAL;	/* Valid only on files */
		return -1;
	}
	fd = _fd_seq(fd);
	if(fd >= Nfiles || Refcnt[fd] == 0){
		errno = EINVAL;
		return -1;
	}
	if(--Refcnt[fd] != 0)
		return 0;	/* Somebody else is still using it */
	regs.x.bx = fd;
	regs.h.ah = 0x3e;
	intdos(&regs,&regs);
	if(regs.x.cflag){
		if(regs.x.ax < NERROR)
			errno = _ioerr[regs.x.ax];
		return -1;
	}
	return 0;
}
int
_read(fd,buf,cnt)
int fd;
void *buf;
unsigned cnt;
{
	union REGS regs;
	struct SREGS segregs;

	if(fd < 0 || _fd_type(fd) != _FL_FILE){
		errno = EINVAL;	/* Valid only on files */
		return -1;
	}
	fd = _fd_seq(fd);
	if(fd >= Nfiles || Refcnt[fd] == 0){
		errno = EINVAL;
		return -1;
	}
	regs.x.bx = fd;
	regs.x.cx = cnt;
	segregs.ds = FP_SEG(buf);
	regs.x.dx = FP_OFF(buf);
	regs.h.ah = 0x3f;
	intdosx(&regs,&regs,&segregs);
	if(regs.x.cflag){
		if(regs.x.ax < NERROR)
			errno = _ioerr[regs.x.ax];
		return -1;
	}
	return regs.x.ax;	/* Return count */
}
int
_write(fd,buf,cnt)
int fd;
const void *buf;
unsigned cnt;
{
	union REGS regs;
	struct SREGS segregs;

	if(fd < 0 || _fd_type(fd) != _FL_FILE){
		errno = EINVAL;	/* Valid only on files */
		return -1;
	}
	fd = _fd_seq(fd);
	if(fd >= Nfiles || Refcnt[fd] == 0){
		errno = EINVAL;
		return -1;
	}
	regs.x.bx = fd;
	regs.x.cx = cnt;
	segregs.ds = FP_SEG(buf);
	regs.x.dx = FP_OFF(buf);
	regs.h.ah = 0x40;
	intdosx(&regs,&regs,&segregs);
	if(regs.x.cflag){
		if(regs.x.ax < NERROR)
			errno = _ioerr[regs.x.ax];
		return -1;
	}
	cnt = regs.x.ax;	/* Return count */

/* Not really necessary when share.exe is loaded, and it really slows down
 * machines without disk write caches
 */
#ifdef	notdef
	/* Call the "commit file" command to flush it out (will fail for
	 * MS-DOS before 3.3)
	 */
	regs.x.bx = fd;
	regs.h.ah = 0x68;
	intdos(&regs,&regs);
#endif
	return cnt;
}
long
_lseek(fd,offset,whence)
int fd;
long offset;
int whence;
{
	union REGS regs;

	if(fd < 0 || _fd_type(fd) != _FL_FILE){
		errno = EINVAL;	/* Valid only on files */
		return -1;
	}
	fd = _fd_seq(fd);
	if(fd >= Nfiles || Refcnt[fd] == 0){
		errno = EINVAL;
		return -1;
	}
	regs.x.bx = fd;
	regs.x.cx = offset >> 16;
	regs.x.dx = offset;
	regs.h.al = whence;
	regs.h.ah = 0x42;
	intdos(&regs,&regs);
	if(regs.x.cflag){
		if(regs.x.ax < NERROR)
			errno = _ioerr[regs.x.ax];
		return -1;
	}
	/* Return new offset */
	return ((long)regs.x.dx << 16) | regs.x.ax;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人理论电影网| 国产精品18久久久久久久网站| 高清免费成人av| 欧美日韩免费电影| 日韩视频中午一区| 亚洲黄色小视频| 蜜桃视频一区二区| 91免费看视频| 欧美一级精品大片| 国产成a人亚洲| 欧美日韩视频在线一区二区| 欧美一级黄色大片| 日本一区二区电影| 黑人巨大精品欧美黑白配亚洲| 欧美日韩一区国产| 亚洲一区二区在线免费看| 99久久精品免费看| 三级成人在线视频| 久久久久国产一区二区三区四区 | 中文字幕av一区 二区| 免费av成人在线| 久久久久久久久久电影| 精品国产免费一区二区三区四区| 成人黄色片在线观看| 精久久久久久久久久久| 亚洲乱码日产精品bd| 中文字幕在线观看不卡视频| 寂寞少妇一区二区三区| 国产伦精品一区二区三区免费 | 国产一区二区美女| voyeur盗摄精品| 国产精品69毛片高清亚洲| 亚洲综合一区二区| 亚洲欧洲99久久| 国产精品毛片无遮挡高清| 日本欧美一区二区三区乱码| 欧美人妖巨大在线| 亚洲女性喷水在线观看一区| 亚洲黄色录像片| 国产精品超碰97尤物18| 国产三级精品三级在线专区| 欧美一区二区三区播放老司机| 欧美色图免费看| 国产午夜久久久久| 日韩一区二区三区观看| 欧美美女直播网站| 在线观看av一区| 91.麻豆视频| 国产精品久久久久四虎| 日韩电影在线免费看| 国产一区三区三区| 91成人在线免费观看| 精品国产乱码久久| wwww国产精品欧美| 国产综合色视频| 欧美日韩国产高清一区二区三区| 欧美一区二区福利在线| 亚洲精品乱码久久久久久久久 | 久久精品亚洲一区二区三区浴池| 国产精品第五页| 久久国产生活片100| 欧美日韩国产另类不卡| 国产农村妇女毛片精品久久麻豆 | 亚洲国产一区在线观看| 激情综合色综合久久| 欧美巨大另类极品videosbest | 亚洲欧洲99久久| 国产精品一级二级三级| 日韩一级视频免费观看在线| 亚洲第一av色| 欧美日韩在线观看一区二区| 亚洲欧洲av色图| av在线综合网| 亚洲欧美经典视频| 色先锋aa成人| 视频一区在线视频| 日韩午夜在线影院| 风间由美一区二区三区在线观看| 2023国产一二三区日本精品2022| 麻豆精品视频在线观看| 国产欧美va欧美不卡在线| 麻豆91精品视频| 久久亚洲影视婷婷| 国产成人免费av在线| 国产精品理论片在线观看| 成人国产在线观看| 亚洲成人精品在线观看| 欧美一二三在线| 久久国产剧场电影| 国产精品美女久久久久av爽李琼| www.欧美精品一二区| 日韩精品久久理论片| 久久久精品一品道一区| av在线一区二区| 韩国中文字幕2020精品| 亚洲视频在线观看三级| 在线成人av网站| 成人激情小说网站| 免费成人你懂的| 亚洲愉拍自拍另类高清精品| 久久亚区不卡日本| 欧美丰满嫩嫩电影| 岛国精品在线观看| 激情另类小说区图片区视频区| 亚洲女厕所小便bbb| 欧美精彩视频一区二区三区| 欧美日韩国产另类一区| 99精品热视频| 成人免费毛片高清视频| 国产成人综合在线播放| 美日韩一区二区三区| 日韩中文字幕区一区有砖一区 | 久久久国产精品麻豆| 日韩精品中文字幕在线一区| 欧美一区二区私人影院日本| eeuss国产一区二区三区| 国产成人av电影在线观看| 国产精品一区不卡| 国产自产v一区二区三区c| 国内精品久久久久影院色| 久热成人在线视频| 久久国产福利国产秒拍| 国产麻豆欧美日韩一区| 国产白丝网站精品污在线入口| 狠狠色丁香婷综合久久| 国产69精品久久99不卡| 91精品国产高清一区二区三区 | 91丝袜美女网| 欧美日韩三级在线| 久久综合狠狠综合久久综合88| 日韩视频在线永久播放| 中文成人av在线| 亚洲第一久久影院| 久久99国产精品尤物| 国产成人精品在线看| 欧美狂野另类xxxxoooo| 欧美成人一区二区| 亚洲人成网站精品片在线观看| 一区二区在线观看视频| 国产一区二区三区免费看 | 日本网站在线观看一区二区三区| 日韩激情在线观看| 91麻豆swag| 国产三级精品在线| 青青草成人在线观看| 99国产精品久久| 日本一二三不卡| 久久精品国产第一区二区三区| 91小视频免费观看| 国产精品网站在线观看| 国产一区二区成人久久免费影院| 在线观看日韩国产| 亚洲精品欧美在线| 91婷婷韩国欧美一区二区| 中文幕一区二区三区久久蜜桃| 麻豆精品新av中文字幕| 欧美高清一级片在线| 日本亚洲电影天堂| 欧美日韩你懂得| 免费在线欧美视频| 精品国产一区久久| 国产综合成人久久大片91| 亚洲精品一区二区三区福利| 麻豆91免费看| 久久精品欧美日韩| 99久久精品国产导航| 亚洲精品免费在线播放| 欧美日韩国产综合久久| 日韩精品乱码免费| 国产视频一区在线播放| 成人av资源站| 日韩影院在线观看| 亚洲乱码中文字幕| 91精品在线一区二区| 成人性生交大片免费看视频在线 | 免费观看日韩av| 中文字幕欧美区| 欧美喷水一区二区| 国产成人综合视频| 日av在线不卡| 亚洲丝袜精品丝袜在线| 日韩欧美国产麻豆| 在线免费精品视频| 国产精品69久久久久水密桃| 亚洲综合成人在线视频| 精品美女一区二区| 欧美日韩亚洲另类| 97精品国产露脸对白| 国产福利一区二区| 蜜乳av一区二区| 日韩va欧美va亚洲va久久| 国产精品久久久久久户外露出| 欧美大片一区二区三区| 色8久久精品久久久久久蜜 | 激情成人综合网| 青草av.久久免费一区| 日产精品久久久久久久性色| 亚洲风情在线资源站| 一区二区三区四区国产精品| 亚洲欧美视频在线观看|