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

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

?? rock.c

?? 創建一個符合iso-9660標準的iso文件系統
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* @(#)rock.c	1.25 00/05/07 joerg */#ifndef lintstatic	char sccsid[] =	"@(#)rock.c	1.25 00/05/07 joerg";#endif/* * File rock.c - generate RRIP  records for iso9660 filesystems.   Written by Eric Youngdale (1993).   Copyright 1993 Yggdrasil Computing, Incorporated   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; if not, write to the Free Software   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */#include "config.h"#include <stdlib.h>#include <unixstd.h>#include <device.h>#include "mkisofs.h"#include "iso9660.h"#include <strdefs.h>#include <statdefs.h>#ifdef	USE_LIBSCHILY#include <standard.h>#include <schily.h>#endif#define SU_VERSION 1#define SL_ROOT    8#define SL_PARENT  4#define SL_CURRENT 2#define SL_CONTINUE 1#define CE_SIZE 28#define CL_SIZE 12#define ER_SIZE 8#define NM_SIZE 5#define PL_SIZE 12#define PN_SIZE 20#define PX_SIZE 36#define RE_SIZE 4#define SL_SIZE 20#define ZZ_SIZE 15#ifdef APPLE_HYB#define AA_SIZE 14	/* size of Apple extension */#endif	/* APPLE_HYB */#ifdef __QNX__#define TF_SIZE (5 + 4 * 7)#else#define TF_SIZE (5 + 3 * 7)#endif#ifdef APPLE_HYBstatic	void	rstrncpy			__PR((char *t, char *f, int c));#endifstatic	void	add_CE_entry			__PR((void));	int	generate_rock_ridge_attributes	__PR((char *whole_name,							char *name,					                struct directory_entry * s_entry,							struct stat * statbuf,					                struct stat * lstatbuf,					                int deep_opt));	char *	generate_rr_extension_record	__PR((char *id,							char *descriptor,					                char *source,							int *size));/* * If we need to store this number of bytes, make sure we * do not box ourselves in so that we do not have room for * a CE entry for the continuation record  */#define MAYBE_ADD_CE_ENTRY(BYTES) \    (BYTES + CE_SIZE + currlen + (ipnt - recstart) > reclimit ? 1 : 0)/* * Buffer to build RR attributes */static unsigned char Rock[16384];static unsigned char symlink_buff[256];static int      ipnt = 0;static int      recstart = 0;static int      currlen = 0;static int      mainrec = 0;static int      reclimit;#ifdef APPLE_HYB/* if we are using the HFS name, we don't want the '/' character */static voidrstrncpy(t, f, c)	char	*t;	char	*f;	int	c;{	while (c-- && *f) {		switch (*f) {		case '/':			*t = '_';			break;		default:			*t = *f;			break;		}		t++;		f++;	}}#endif	/* APPLE HYB */static voidadd_CE_entry(){	if (recstart)		set_733((char *) Rock + recstart - 8, ipnt + 28 - recstart);	Rock[ipnt++] = 'C';	Rock[ipnt++] = 'E';	Rock[ipnt++] = CE_SIZE;	Rock[ipnt++] = SU_VERSION;	set_733((char *) Rock + ipnt, 0);	ipnt += 8;	set_733((char *) Rock + ipnt, 0);	ipnt += 8;	set_733((char *) Rock + ipnt, 0);	ipnt += 8;	recstart = ipnt;	currlen = 0;	if (!mainrec)		mainrec = ipnt;	reclimit = SECTOR_SIZE - 8;	/* Limit to one sector */}#ifdef __STDC__intgenerate_rock_ridge_attributes(char *whole_name, char *name,	                struct directory_entry * s_entry,	                struct stat * statbuf,	                struct stat * lstatbuf,	                int deep_opt)#elseintgenerate_rock_ridge_attributes(whole_name, name,	                s_entry,	                statbuf,	                lstatbuf,	                deep_opt)	char           *whole_name;	char           *name;	struct directory_entry *s_entry;	struct stat    *statbuf,	               *lstatbuf;	int             deep_opt;#endif{	int             flagpos,	                flagval;	int             need_ce;	statbuf = statbuf;	/* this shuts up unreferenced compiler				   warnings */	mainrec = recstart = ipnt = 0;	reclimit = 0xf8;	/* no need to fill in the RR stuff if we won't see the file */	if (s_entry->de_flags & INHIBIT_ISO9660_ENTRY)		return 0;	/*	 * Obtain the amount of space that is currently used for the directory	 * record.  Assume max for name, since name conflicts may cause us to	 * rename the file later on	 */	currlen = sizeof(s_entry->isorec);#ifdef APPLE_HYB	/* if we have regular file, then add Apple extensions */	if (S_ISREG(lstatbuf->st_mode) && apple_ext && s_entry->hfs_ent) {		Rock[ipnt++] = 'A';	/* AppleSignature */		Rock[ipnt++] = 'A';		Rock[ipnt++] = AA_SIZE;	/* includes AppleSignature bytes */		Rock[ipnt++] = 0x02;	/* SystemUseID */		Rock[ipnt++] = s_entry->hfs_ent->u.file.type[0];		Rock[ipnt++] = s_entry->hfs_ent->u.file.type[1];		Rock[ipnt++] = s_entry->hfs_ent->u.file.type[2];		Rock[ipnt++] = s_entry->hfs_ent->u.file.type[3];		Rock[ipnt++] = s_entry->hfs_ent->u.file.creator[0];		Rock[ipnt++] = s_entry->hfs_ent->u.file.creator[1];		Rock[ipnt++] = s_entry->hfs_ent->u.file.creator[2];		Rock[ipnt++] = s_entry->hfs_ent->u.file.creator[3];		Rock[ipnt++] = (s_entry->hfs_ent->fdflags >> 8) & 0xff;		Rock[ipnt++] = s_entry->hfs_ent->fdflags & 0xff;	}#endif	/* APPLE_HYB */	/* Identify that we are using the SUSP protocol */	if (deep_opt & NEED_SP) {		Rock[ipnt++] = 'S';		Rock[ipnt++] = 'P';		Rock[ipnt++] = 7;		Rock[ipnt++] = SU_VERSION;		Rock[ipnt++] = 0xbe;		Rock[ipnt++] = 0xef;		Rock[ipnt++] = 0;	};	/* First build the posix name field */	Rock[ipnt++] = 'R';	Rock[ipnt++] = 'R';	Rock[ipnt++] = 5;	Rock[ipnt++] = SU_VERSION;	flagpos = ipnt;	flagval = 0;	Rock[ipnt++] = 0;	/* We go back and fix this later */	if (strcmp(name, ".") && strcmp(name, "..")) {		char           *npnt;		int             remain,		                use;#ifdef APPLE_HYB		/* use the HFS name if it exists */		if (USE_MAC_NAME(s_entry)) {			remain = strlen(s_entry->hfs_ent->name);			npnt = s_entry->hfs_ent->name;		} else {#endif	/* APPLE_HYB */			remain = strlen(name);			npnt = name;#ifdef APPLE_HYB		}#endif	/* APPLE_HYB */		while (remain) {			use = remain;			need_ce = 0;			/* Can we fit this SUSP and a CE entry? */			if (use + currlen + CE_SIZE + (ipnt - recstart) >								reclimit) {				use = reclimit - currlen -					CE_SIZE - (ipnt - recstart);				need_ce++;			}			/* Only room for 256 per SUSP field */			if (use > 0xf8)				use = 0xf8;			/* First build the posix name field */			Rock[ipnt++] = 'N';			Rock[ipnt++] = 'M';			Rock[ipnt++] = NM_SIZE + use;			Rock[ipnt++] = SU_VERSION;			Rock[ipnt++] = (remain != use ? 1 : 0);			flagval |= (1 << 3);#ifdef APPLE_HYB			/* filter out any '/' character in HFS filename */			if (USE_MAC_NAME(s_entry))				rstrncpy((char *) &Rock[ipnt], npnt, use);			else#endif	/* APPLE_HYB */				strncpy((char *) &Rock[ipnt], npnt, use);			npnt += use;			ipnt += use;			remain -= use;			if (remain && need_ce)				add_CE_entry();		};	};	/* Add the posix modes */	if (MAYBE_ADD_CE_ENTRY(PX_SIZE))		add_CE_entry();	Rock[ipnt++] = 'P';	Rock[ipnt++] = 'X';	Rock[ipnt++] = PX_SIZE;	Rock[ipnt++] = SU_VERSION;	flagval |= (1 << 0);	set_733((char *) Rock + ipnt, lstatbuf->st_mode);	ipnt += 8;	set_733((char *) Rock + ipnt, lstatbuf->st_nlink);	ipnt += 8;	set_733((char *) Rock + ipnt, lstatbuf->st_uid);	ipnt += 8;	set_733((char *) Rock + ipnt, lstatbuf->st_gid);	ipnt += 8;	/* Check for special devices */#if	defined(S_IFCHR) || defined(S_IFBLK)#ifndef NON_UNIXFS	if (S_ISCHR(lstatbuf->st_mode) || S_ISBLK(lstatbuf->st_mode)) {		if (MAYBE_ADD_CE_ENTRY(PN_SIZE))			add_CE_entry();		Rock[ipnt++] = 'P';		Rock[ipnt++] = 'N';		Rock[ipnt++] = PN_SIZE;		Rock[ipnt++] = SU_VERSION;		flagval |= (1 << 1);#if 1		/* This is the new and only code which uses <device.h> */		set_733((char *) Rock + ipnt, major(lstatbuf->st_rdev));		ipnt += 8;		set_733((char *) Rock + ipnt, minor(lstatbuf->st_rdev));		ipnt += 8;#else		/*		 * If we don't have sysmacros.h, then we have to guess as to		 * how best to pick apart the device number for major/minor.		 * Note: this may very well be wrong for many systems, so it		 * is always best to use the major/minor macros if the system		 * supports it.		 */		if (sizeof(dev_t) <= 2) {			set_733((char *)Rock + ipnt, (lstatbuf->st_rdev >> 8));			ipnt += 8;			set_733((char *)Rock + ipnt, lstatbuf->st_rdev & 0xff);			ipnt += 8;		} else if (sizeof(dev_t) <= 4) {			set_733((char *)Rock + ipnt,						(lstatbuf->st_rdev >> 8) >> 8);			ipnt += 8;			set_733((char *)Rock + ipnt,						lstatbuf->st_rdev & 0xffff);			ipnt += 8;		} else {			set_733((char *)Rock + ipnt,						(lstatbuf->st_rdev >> 16)>>16);			ipnt += 8;			set_733((char *)Rock + ipnt, lstatbuf->st_rdev);			ipnt += 8;		}#endif	};#endif#endif	/* defined(S_IFCHR) || defined(S_IFBLK) */	/* Check for and symbolic links.  VMS does not have these. */#ifdef S_IFLNK	if (S_ISLNK(lstatbuf->st_mode)) {		int             lenpos,		                lenval,		                j0,		                j1;		int             nchar;		unsigned char  *cpnt,		               *cpnt1;#ifdef	HAVE_READLINK		nchar = readlink(whole_name, (char *)symlink_buff,							sizeof(symlink_buff));#else		nchar = -1;#endif	/* HAVE_READLINK */		symlink_buff[nchar < 0 ? 0 : nchar] = 0;		nchar = strlen((char *) symlink_buff);		set_733(s_entry->isorec.size, 0);		cpnt = &symlink_buff[0];		flagval |= (1 << 2);		if (!split_SL_field) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲制服丝袜av| 久久久久国产精品麻豆| 日韩欧美自拍偷拍| 久久久www免费人成精品| 国产精品电影一区二区三区| 一区二区三区中文免费| 日本人妖一区二区| 成人黄色网址在线观看| 欧美午夜一区二区| 国产亚洲精品资源在线26u| 一区二区国产视频| 久久精品国产精品亚洲红杏| 91一区二区在线| 欧美一级精品在线| 中文字幕亚洲一区二区av在线| 日日摸夜夜添夜夜添国产精品 | 欧美三级日韩三级| 久久网这里都是精品| 亚洲毛片av在线| 韩日欧美一区二区三区| 色综合一区二区| 国产精品一线二线三线| 在线看一区二区| 国产无一区二区| 视频一区欧美精品| 99久久精品费精品国产一区二区| 91精品国产全国免费观看| 国产精品人成在线观看免费 | 日韩精品一区二区三区中文精品| 中文字幕制服丝袜一区二区三区 | 久久久五月婷婷| 午夜电影久久久| 色综合色综合色综合色综合色综合| 91精品国产色综合久久不卡蜜臀| 亚洲欧洲日韩av| 国产一区在线观看视频| 欧美精品在线一区二区三区| 亚洲少妇最新在线视频| 国产九色sp调教91| 日韩一级片在线观看| 亚洲韩国精品一区| 91丨九色丨国产丨porny| 久久理论电影网| 麻豆91在线观看| 7777女厕盗摄久久久| 一区二区三区视频在线观看| 国产不卡视频一区二区三区| 亚洲精品一线二线三线无人区| 亚洲高清视频的网址| 色综合视频一区二区三区高清| 国产日产欧美一区| 老司机精品视频在线| 欧美三级韩国三级日本三斤| 亚洲免费伊人电影| 91香蕉视频黄| 中文字幕在线不卡一区| 从欧美一区二区三区| 国产网站一区二区| 国产精品资源在线| 久久久久久久久免费| 韩国av一区二区三区在线观看| 欧美一级艳片视频免费观看| 婷婷久久综合九色国产成人| 欧美吞精做爰啪啪高潮| 一区二区三区资源| 色婷婷综合久久久中文一区二区| 中文字幕成人在线观看| 国产不卡在线播放| 国产精品国产三级国产普通话三级 | 99久久精品国产导航| 国产精品美日韩| 成人激情免费视频| 国产精品无遮挡| 成人看片黄a免费看在线| 国产精品素人视频| 91在线视频免费观看| 国产精品久久久久精k8| jiyouzz国产精品久久| 中文字幕日本乱码精品影院| 99精品国产99久久久久久白柏| 国产精品剧情在线亚洲| 色综合天天在线| 亚洲一区二区三区在线看| 欧美另类久久久品| 蜜桃av噜噜一区| 久久草av在线| 久久精品亚洲精品国产欧美kt∨| 国产成人午夜99999| 国产亚洲欧美色| 99久久精品国产一区| 亚洲精品免费播放| 欧美情侣在线播放| 蜜臀精品久久久久久蜜臀| 2021中文字幕一区亚洲| 成人影视亚洲图片在线| 日韩毛片视频在线看| 欧美日韩一本到| 韩国欧美国产1区| 欧美韩国日本一区| 在线亚洲人成电影网站色www| 五月综合激情网| 日韩精品一区二区三区视频| 国产成人av一区二区三区在线观看| 国产精品久久久久永久免费观看| 在线免费精品视频| 久久99精品久久久久久动态图| 久久久久久免费| 欧美性猛交xxxx黑人交| 韩国三级在线一区| 17c精品麻豆一区二区免费| 欧美日韩免费在线视频| 国产在线视视频有精品| 综合自拍亚洲综合图不卡区| 欧美男女性生活在线直播观看| 韩国v欧美v日本v亚洲v| 亚洲激情成人在线| 精品福利一区二区三区| 91蝌蚪porny| 久久av中文字幕片| 亚洲女同一区二区| 久久综合给合久久狠狠狠97色69| 91麻豆国产福利精品| 久久久久久一二三区| 欧美无乱码久久久免费午夜一区 | 亚洲精品在线电影| 欧亚一区二区三区| 国产高清在线观看免费不卡| 亚洲图片一区二区| 久久久久国产免费免费| 欧美区视频在线观看| 成人国产精品视频| 麻豆国产精品777777在线| 亚洲精品视频免费观看| 精品国产一区久久| 欧美日韩国产另类不卡| 99久久久久免费精品国产 | 国产三级三级三级精品8ⅰ区| 欧美日韩国产bt| 成人一道本在线| 狠狠色丁香久久婷婷综合丁香| 亚洲女人****多毛耸耸8| 久久一区二区三区四区| 欧美精品丝袜中出| 色婷婷av久久久久久久| 国产美女在线精品| 日韩av一级片| 亚洲激情校园春色| 国产精品久久久久婷婷二区次| 日韩一区二区三区三四区视频在线观看| 99精品桃花视频在线观看| 国模冰冰炮一区二区| 日韩av中文字幕一区二区| 一区二区三区在线观看视频| 欧美国产日韩精品免费观看| 精品国产免费一区二区三区香蕉| 欧美色图天堂网| 91免费观看视频在线| 粉嫩久久99精品久久久久久夜| 蜜桃一区二区三区在线观看| 亚洲123区在线观看| 亚洲欧洲精品成人久久奇米网| 久久久精品免费免费| 日韩女优电影在线观看| 日本亚洲免费观看| 亚洲最快最全在线视频| 亚洲精品亚洲人成人网在线播放| 国产精品人人做人人爽人人添| 国产亚洲午夜高清国产拍精品| 日韩精品一区二区三区在线播放| 88在线观看91蜜桃国自产| 欧美性生交片4| 一本大道av一区二区在线播放| 成人激情开心网| 成人福利视频网站| 国产精品小仙女| 粉嫩aⅴ一区二区三区四区五区| 精品亚洲免费视频| 国产美女在线观看一区| 国产伦精品一区二区三区免费迷 | 久久麻豆一区二区| 国产视频一区二区三区在线观看| 久久美女高清视频| 国产欧美一区二区精品性| 国产区在线观看成人精品| 亚洲国产精品ⅴa在线观看| 久久精品视频一区| 国产精品丝袜一区| 亚洲天堂精品在线观看| 亚洲免费观看在线视频| 亚洲小说欧美激情另类| 亚洲国产视频直播| 天天亚洲美女在线视频| 免费一级片91| 激情综合色播激情啊| 国产乱妇无码大片在线观看| 国产精品一区二区在线播放| 丁香五精品蜜臀久久久久99网站| 国产高清精品网站| 不卡视频在线观看| 91国产丝袜在线播放|