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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stream.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
?? 第 1 頁 / 共 3 頁
字號:
/* *	A File */File::File(){	mcount = 0;}#define FILE_TRANSFER_BUFSIZE 4*1024/** *	Low-level control function. *	@param cmd file control command number *	@returns 0 on success, POSIX.1 I/O error code on error */int File::cntl(uint cmd, ...){	va_list vargs;	va_start(vargs, cmd);	int ret = vcntl(cmd, vargs);	va_end(vargs);	return ret;}void File::move(FileOfs src, FileOfs dest, FileOfs size){	if (dest < src) {		char tbuf[FILE_TRANSFER_BUFSIZE];		while (size != 0) {			FileOfs k = size;			if (k > sizeof tbuf) k = sizeof tbuf;			seek(src);			readx(tbuf, k);			seek(dest);			writex(tbuf, k);			src += k;			dest += k;			size -= k;		}	} else if (dest > src) {		src += size;		dest += size;		char tbuf[FILE_TRANSFER_BUFSIZE];		while (size != 0) {			FileOfs k = size;			if (k > sizeof tbuf) k = sizeof tbuf;			src -= k;			dest -= k;			seek(src);			readx(tbuf, k);			seek(dest);			writex(tbuf, k);			size -= k;		}	}}/** *	Cut out bytes from file. *	Cut out <i>size</i> bytes starting at current file pointer, ending at *	current file pointer + <i>size</i>. Does not modify the current file pointer. * *	@param size number of bytes to delete *	@throws IOException */void File::cut(FileOfs size){	FileOfs t = tell();	FileOfs o = t+size;	if (o > getSize()) throw IOException(EINVAL);	FileOfs s = getSize()-o;	move(o, t, s);	truncate(getSize()-size);	seek(t);}/** *	Extend file. *	Extend file to new size <i>newsize</i>. *	The current file pointer is undefined (but valid) after this operation. * *	@param newsize new extended file size *	@throws IOException */void File::extend(FileOfs newsize){	if (getSize() > newsize) throw IOException(EINVAL);	if (getSize() == newsize) return;	FileOfs save_ofs = tell();	int e = 0;	IOAccessMode oldmode = getAccessMode();	if (!(oldmode & IOAM_WRITE)) {		int f = setAccessMode(oldmode | IOAM_WRITE);		if (f) throw IOException(f);	}	FileOfs s = getSize();	char buf[FILE_TRANSFER_BUFSIZE];	memset(buf, 0, sizeof buf);	newsize -= s;	seek(s);	while (newsize != 0) {		uint k = MIN(sizeof buf, newsize);		uint l = write(buf, k);		if (l != k) {			e = EIO;			break;		}		newsize -= l;	}	if (!(oldmode & IOAM_WRITE)) {		int f = setAccessMode(oldmode);		if (f) e = f;	}	if (e) throw IOException(e);	seek(save_ofs);}/** *	Get filename. * *	@param result String that receives the filename *	@returns its argument */String &File::getFilename(String &result) const{	result = "";	return result;}/** *	Get file size. * *	@returns file size */FileOfs File::getSize() const{	return 0;}#define FILE_INSERT_BUFSIZE 4*1024/** *	Insert bytes into file. *	Insert <i>size</i> bytes from <i>buf</i> at the current file pointer *	into the file and extend file accordingly. * *	@param buf pointer to buffer that holds at least <i>size</i> bytes *	@param size number of bytes to insert *	@throws IOException */void File::insert(const void *buf, FileOfs size){	FileOfs t = tell();	FileOfs s = getSize()-t;	extend(getSize()+size);	move(t, t+size, s);	seek(t);	writex(buf, size);}/** *	Get file status in a portable way. *	@param s structure that receives the file status */void File::pstat(pstat_t &s) const{	s.caps = 0;}/** *	Set current file pointer. *	@param offset new value for current file pointer */void File::seek(FileOfs offset){	throw NotImplementedException(HERE);}/** *	Get current file pointer. *	@returns current file pointer */FileOfs File::tell() const{	return 0;}/** *	Truncate file. *	Truncate file to new size <i>newsize</i>. *	The current file pointer is undefined (but valid) after this operation. * *	@param newsize new truncated file size *	@throws IOException */void File::truncate(FileOfs newsize){	if (getSize() < newsize) throw IOException(EINVAL);	if (getSize() == newsize) return;	throw NotImplementedException(HERE);}/** *	Vararg wrapper for cntl() */int File::vcntl(uint cmd, va_list vargs){	switch (cmd) {		case FCNTL_GET_MOD_COUNT: {	// int &mcount			int *mc = va_arg(vargs, int *);			*mc = mcount;			return 0;		}	}	return ENOSYS;}char *File::fgetstrz(){	FileOfs o = tell();	/* get string size */	char buf[64];	int s, z = 0;	bool found = false;	while (!found) {		s = read(buf, 64);		for (int i=0; i < s; i++) {			z++;			if (buf[i] == 0) {				found = true;				break;			}		}		if (s < 64) {			break;		}	}	if (s == 0) return ht_strdup("");	/* read string */	char *str = ht_malloc(z);	if (!str) throw std::bad_alloc();	seek(o);	readx(str, z);	str[z-1] = 0;	return str;}/* *	FileLayer */FileLayer::FileLayer(File *f, bool own_f) : File(){	mFile = f;	mOwnFile = own_f;}FileLayer::~FileLayer(){	if (mOwnFile) delete mFile;}void FileLayer::cut(FileOfs size){	return mFile->cut(size);}void FileLayer::extend(FileOfs newsize){	return mFile->extend(newsize);}IOAccessMode FileLayer::getAccessMode() const{	return mFile->getAccessMode();}String &FileLayer::getDesc(String &result) const{	return mFile->getDesc(result);}String &FileLayer::getFilename(String &result) const{	return mFile->getFilename(result);}FileOfs FileLayer::getSize() const{	return mFile->getSize();}void FileLayer::insert(const void *buf, FileOfs size){	return mFile->insert(buf, size);}void FileLayer::pstat(pstat_t &s) const{	return mFile->pstat(s);}uint FileLayer::read(void *buf, uint size){	return mFile->read(buf, size);}void FileLayer::seek(FileOfs offset){	return mFile->seek(offset);}int FileLayer::setAccessMode(IOAccessMode mode){	return mFile->setAccessMode(mode);}File *FileLayer::getLayered() const{	return mFile;}void FileLayer::setLayered(File *newLayered, bool ownNewLayered){	mFile = newLayered;	mOwnFile = ownNewLayered;}FileOfs FileLayer::tell() const{	return mFile->tell();}void FileLayer::truncate(FileOfs newsize){	return mFile->truncate(newsize);}int FileLayer::vcntl(uint cmd, va_list vargs){	return mFile->vcntl(cmd, vargs);}uint FileLayer::write(const void *buf, uint size){	return mFile->write(buf, size);}/* *	LocalFileFD *//** *	create open file */LocalFileFD::LocalFileFD(const String &aFilename, IOAccessMode am, FileOpenMode om) : File(), mFilename(aFilename){	mOpenMode = om;	fd = -1;	own_fd = false;	int e = setAccessMode(am);	if (e) throw IOException(e);	mOpenMode = FOM_EXISTS;}/** *	map a file descriptor [fd] */LocalFileFD::LocalFileFD(int f, bool own_f, IOAccessMode am) : File(){	mFilename = NULL;	fd = f;	own_fd = own_f;	offset = 0;	int e = File::setAccessMode(am);	if (e) throw IOException(e);}LocalFileFD::~LocalFileFD(){	if (own_fd && (fd>=0)) ::close(fd);}String &LocalFileFD::getDesc(String &result) const{	result = mFilename;	return result;}String &LocalFileFD::getFilename(String &result) const{	result = mFilename;	return result;}FileOfs LocalFileFD::getSize() const{	FileOfs t = tell();	off_t r = ::lseek(fd, 0, SEEK_END);	if (r == (off_t)-1) return 0;	// hm...	::lseek(fd, t, SEEK_SET);	return r;}uint LocalFileFD::read(void *buf, uint size){	if (!(getAccessMode() & IOAM_READ)) throw IOException(EACCES);	errno = 0;	uint r = ::read(fd, buf, size);	int e = errno;	if (e) {		::lseek(fd, 0, SEEK_SET);		offset = 0;		if (e != EAGAIN) throw IOException(e);		return 0;	} else {		offset += r;		return r;	}		}void LocalFileFD::seek(FileOfs o){	off_t r = ::lseek(fd, o, SEEK_SET);	if (r == (off_t)-1) throw IOException(errno);	offset = r;	if (offset != o) throw IOException(EIO);}int LocalFileFD::setAccessMode(IOAccessMode am){	IOAccessMode orig_access_mode = getAccessMode();	int e = setAccessModeInternal(am);	if (e && setAccessModeInternal(orig_access_mode))		throw IOException(e);	return e;}int LocalFileFD::setAccessModeInternal(IOAccessMode am){//RETRY:	if (getAccessMode() == am) return 0;	if (fd >= 0) {		// must own fd to change its access mode cause we can't		// reopen a fd. right?		if (!own_fd) throw NotImplementedException(HERE);		// FIXME: race condition here, how to reopen a fd atomically?		close(fd);		fd = -1;	}	File::setAccessMode(IOAM_NULL);	int mode = 0;	if ((am & IOAM_READ) && (am & IOAM_WRITE)) mode = O_RDWR;	else if (am & IOAM_READ) mode = O_RDONLY;	else if (am & IOAM_WRITE) mode = O_WRONLY;//	mode |= O_BINARY;	switch (mOpenMode) {	case FOM_APPEND:		mode |= O_APPEND;		break;	case FOM_CREATE:		mode |= O_CREAT | O_TRUNC;		break;	case FOM_EXISTS:		;	}	int e = 0;	if (am != IOAM_NULL) {		pstat_t s;		fd = ::open(mFilename.contentChar(), mode);		if (fd < 0) e = errno;		if (!e) {			own_fd = true;			e = sys_pstat_fd(s, fd);			if (!e) {				if (HT_S_ISDIR(s.mode)) {					e = EISDIR;				} else if (!HT_S_ISREG(s.mode) && !HT_S_ISBLK(s.mode)) {					e = EINVAL;				}			}		}	}	return e ? e : File::setAccessMode(am);}FileOfs LocalFileFD::tell() const{	return offset;}void LocalFileFD::truncate(FileOfs newsize){	errno = 0;	int e = sys_truncate_fd(fd, newsize);	if (errno) e = errno;	if (e) throw IOException(e);}int LocalFileFD::vcntl(uint cmd, va_list vargs){	switch (cmd) {		case FCNTL_FLUSH_STAT: {			IOAccessMode m = getAccessMode();			int e, f;			e = setAccessMode(IOAM_NULL);			f = setAccessMode(m);			return e ? e : f;		}		case FCNTL_GET_FD: {	// (int &fd)			int *pfd = va_arg(vargs, int*);			*pfd = fd;			return 0;		}	}	return File::vcntl(cmd, vargs);}uint LocalFileFD::write(const void *buf, uint size){	if (!(getAccessMode() & IOAM_WRITE)) throw IOException(EACCES);	errno = 0;	uint r = ::write(fd, buf, size);	int e = errno;	if (e) {		::lseek(fd, 0, SEEK_SET);		offset = 0;		if (e != EAGAIN) throw IOException(e);		return 0;	} else {		offset += r;		return r;	}		}/* *	StdIoFile *//** *	create open file */LocalFile::LocalFile(const String &aFilename, IOAccessMode am, FileOpenMode om)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩丝袜美女视频| 亚洲综合免费观看高清完整版| 久久久久久久免费视频了| 五月综合激情网| 欧洲亚洲精品在线| 亚洲人午夜精品天堂一二香蕉| 国产一区二区91| 精品av久久707| 婷婷一区二区三区| 日本精品免费观看高清观看| 国产日本欧美一区二区| 国产一区久久久| 精品蜜桃在线看| 激情亚洲综合在线| 精品国产乱码久久久久久闺蜜| 一区二区三区在线观看欧美| 91行情网站电视在线观看高清版| 成人免费小视频| 在线观看不卡一区| 成人午夜精品一区二区三区| 日韩av二区在线播放| 国产精品天干天干在观线| 欧美r级在线观看| 日本中文一区二区三区| 欧美美女直播网站| 亚洲视频一区在线观看| 粉嫩一区二区三区在线看| 久久久国产精品不卡| 成人va在线观看| 亚洲精品国产精华液| 成人v精品蜜桃久久一区| 亚洲国产日韩在线一区模特| 精品久久久久久久久久久院品网| 国产在线视频一区二区| 亚洲男人天堂av网| 日韩一区二区三区四区五区六区| 奇米色777欧美一区二区| 精品成人免费观看| 欧美精品电影在线播放| 99久久婷婷国产综合精品电影| 日韩不卡一二三区| 亚洲人成网站精品片在线观看 | 亚洲一二三四久久| 日韩精品一区二区三区中文精品 | 国产欧美精品一区二区色综合朱莉| 亚洲摸摸操操av| 欧美一区二区三区在| 国产精品日日摸夜夜摸av| 欧美影院精品一区| 国产成人综合在线观看| 中文字幕一区在线| 国产亚洲精品福利| 欧洲色大大久久| 成人理论电影网| 国内久久精品视频| 另类的小说在线视频另类成人小视频在线 | 欧美三级电影网| 欧美精选午夜久久久乱码6080| 欧美日韩一区久久| 91精品视频网| 中文字幕巨乱亚洲| 一区在线观看视频| 天堂影院一区二区| 久久99最新地址| 99久久er热在这里只有精品15| 91麻豆国产精品久久| 日本韩国欧美在线| 欧美一级日韩一级| 日本一区二区综合亚洲| 亚洲国产一区二区在线播放| 日韩中文字幕1| 国产成人精品免费一区二区| 色婷婷综合久久| 26uuuu精品一区二区| 日韩伦理av电影| 九九精品视频在线看| 日本韩国精品一区二区在线观看| 欧美久久久久久久久| 中文字幕国产一区| 视频一区中文字幕| 国产一区二区三区四| 欧美亚洲国产怡红院影院| 精品卡一卡二卡三卡四在线| 一区二区三区四区高清精品免费观看| 麻豆91在线播放| 欧美性一级生活| 国产欧美在线观看一区| 久久色成人在线| 国产女主播视频一区二区| 视频一区欧美日韩| 在线精品视频一区二区| 亚洲精品国产一区二区精华液| 国产精品1024久久| 国产三级欧美三级| 激情小说欧美图片| 久久亚洲精精品中文字幕早川悠里| 一区在线观看视频| 国产精品99久久久久久有的能看 | 中文字幕一区二区三中文字幕| 日本视频在线一区| 欧美日韩黄色影视| 一区二区三区国产精华| 粉嫩13p一区二区三区| 欧美日韩在线播放三区四区| 日韩精品一区二区三区在线播放 | 午夜精品爽啪视频| 欧美区一区二区三区| 日韩国产欧美在线视频| 欧美高清dvd| 国产一区二区伦理片| 亚洲国产精品二十页| 成人精品高清在线| 欧美日韩免费观看一区二区三区| 亚洲国产日韩a在线播放| 日韩一级高清毛片| 高清av一区二区| 日韩电影在线一区二区| 久久免费偷拍视频| 在线观看免费一区| 精品一区二区三区在线观看国产 | 色婷婷av一区| 国模少妇一区二区三区| 亚洲美女一区二区三区| 精品国产网站在线观看| 色综合久久66| 国产一区视频在线看| 亚洲香肠在线观看| 国产清纯白嫩初高生在线观看91 | 欧美日韩国产高清一区二区三区 | 亚洲午夜久久久久久久久电影院| 日韩一卡二卡三卡国产欧美| 国产盗摄视频一区二区三区| 中文字幕一区不卡| 久久噜噜亚洲综合| 国产一区二区视频在线| 亚洲伊人伊色伊影伊综合网| 欧美变态口味重另类| av不卡免费电影| 经典三级视频一区| 夜夜精品视频一区二区 | 国产**成人网毛片九色| 图片区小说区国产精品视频| www国产成人免费观看视频 深夜成人网| 91丝袜高跟美女视频| 丁香另类激情小说| 国产成人综合精品三级| 毛片av一区二区| 肉丝袜脚交视频一区二区| 亚洲v精品v日韩v欧美v专区| 亚洲精品乱码久久久久久| 伊人色综合久久天天| 亚洲免费在线电影| 午夜精品久久久久久久蜜桃app | 精品久久久影院| xnxx国产精品| 中文字幕不卡三区| 亚洲情趣在线观看| 亚洲成人av电影| 久久99热国产| 国产精品香蕉一区二区三区| caoporn国产精品| 欧美精品亚洲二区| 亚洲精品一区二区三区四区高清| 国产亚洲一区二区在线观看| 中文字幕亚洲视频| 喷水一区二区三区| 成a人片亚洲日本久久| 精品视频999| 中文字幕乱码久久午夜不卡| 亚洲欧美一区二区久久| 久久99精品国产麻豆婷婷洗澡| 夫妻av一区二区| 欧美精品久久天天躁| 中文字幕乱码亚洲精品一区| 一区二区三区精品在线| 亚洲午夜视频在线观看| 午夜电影网一区| 成人黄色大片在线观看| 日韩午夜激情视频| 亚洲视频精选在线| 国产一区二区精品久久91| 日本丰满少妇一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 亚洲精品你懂的| av一区二区不卡| 精品国产成人在线影院| 日韩高清不卡一区二区三区| 91麻豆swag| 中文字幕不卡的av| 国产不卡免费视频| 久久久久九九视频| 久久精品999| 日韩免费一区二区三区在线播放| 亚洲一区二区四区蜜桃| 成人午夜精品在线| 国产欧美一区二区精品忘忧草| 激情深爱一区二区| 久久美女艺术照精彩视频福利播放 | av网站一区二区三区| wwwwxxxxx欧美|