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

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

?? link.c

?? 這是一個同樣來自貝爾實驗室的和UNIX有著淵源的操作系統(tǒng), 其簡潔的設(shè)計和實現(xiàn)易于我們學(xué)習(xí)和理解
?? C
字號:
/* $Source: /u/mark/src/pax/RCS/link.c,v $ * * $Revision: 1.2 $ * * link.c - functions for handling multiple file links  * * DESCRIPTION * *	These function manage the link chains which are used to keep track *	of outstanding links during archive reading and writing. * * AUTHOR * *	Mark H. Colburn, NAPS International (mark@jhereg.mn.org) * * Sponsored by The USENIX Association for public distribution.  * * Copyright (c) 1989 Mark H. Colburn. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice is duplicated in all such  * forms and that any documentation, advertising materials, and other  * materials related to such distribution and use acknowledge that the  * software was developed * by Mark H. Colburn and sponsored by The  * USENIX Association.  * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * $Log:	link.c,v $ * Revision 1.2  89/02/12  10:04:38  mark * 1.2 release fixes *  * Revision 1.1  88/12/23  18:02:12  mark * Initial revision *  */#ifndef lintstatic char *ident = "$Id: link.c,v 1.2 89/02/12 10:04:38 mark Exp $";static char *copyright = "Copyright (c) 1989 Mark H. Colburn.\nAll rights reserved.\n";#endif /* ! lint *//* Headers */#include "pax.h"/* Defines *//* * Address link information base.  */#define	LINKHASH(ino)	(linkbase + (ino) % NEL(linkbase))/* * Number of array elements.  */#define	NEL(a)		(sizeof(a) / sizeof(*(a)))/* Internal Identifiers */static Link    *linkbase[256];	/* Unresolved link information *//* linkfrom - find a file to link from  * * DESCRIPTION * *	Linkfrom searches the link chain to see if there is a file in the *	link chain which has the same inode number as the file specified *	by the stat block pointed at by asb.  If a file is found, the *	name is returned to the caller, otherwise a NULL is returned. * * PARAMETERS * *	char    *name   - name of the file which we are attempting *                        to find a link for *	Stat	*asb	- stat structure of file to find a link to * * RETURNS * * 	Returns a pointer to a link structure, or NULL if unsuccessful.  * */#ifdef __STDC__Link *linkfrom(char *name, Stat *asb)#else    Link *linkfrom(name, asb)char           *name;Stat           *asb;#endif{    Link           *linkp;    Link           *linknext;    Path           *path;    Path           *pathnext;    Link          **abase;    for (linkp = *(abase = LINKHASH(asb->sb_ino)); linkp; linkp = linknext) {	if (linkp->l_nlink == 0) {	    if (linkp->l_name) {		free((char *) linkp->l_name);	    }	    if (linknext = linkp->l_forw) {		linknext->l_back = linkp->l_back;	    }	    if (linkp->l_back) {		linkp->l_back->l_forw = linkp->l_forw;	    }	    free((char *) linkp);	    *abase = (Link *)NULL;	} else if (linkp->l_ino == asb->sb_ino && linkp->l_dev == asb->sb_dev) {	    /* 	     * check to see if a file with the name "name" exists in the 	     * chain of files which we have for this particular link	     */	    for (path = linkp->l_path; path; path = pathnext) {		if (strcmp(path->p_name, name) == 0) {		    --linkp->l_nlink;		    if (path->p_name) {			free(path->p_name);		    }		    if (pathnext = path->p_forw) {			pathnext->p_back = path->p_back;		    }		    if (path->p_back) {			path->p_back->p_forw = pathnext;		    }		    if (linkp->l_path == path) {			linkp->l_path = pathnext;		    }		    free(path);		    return (linkp);		}		pathnext = path->p_forw;	    }	    return((Link *)NULL);	} else {	    linknext = linkp->l_forw;	}    }    return ((Link *)NULL);}/* islink - determine whether a given file really a link * * DESCRIPTION * *	Islink searches the link chain to see if there is a file in the *	link chain which has the same inode number as the file specified *	by the stat block pointed at by asb.  If a file is found, a *	non-zero value is returned to the caller, otherwise a 0 is *	returned. * * PARAMETERS * *	char    *name   - name of file to check to see if it is link. *	Stat	*asb	- stat structure of file to find a link to * * RETURNS * * 	Returns a pointer to a link structure, or NULL if unsuccessful.  * */#ifdef __STDC__Link *islink(char *name, Stat *asb)#else    Link *islink(name, asb)char           *name;Stat           *asb;#endif{    Link           *linkp;    Link           *linknext;    for (linkp = *(LINKHASH(asb->sb_ino)); linkp; linkp = linknext) {	if (linkp->l_ino == asb->sb_ino && linkp->l_dev == asb->sb_dev) {	    if (strcmp(name, linkp->l_name) == 0) {		return ((Link *)NULL);	    } 	    return (linkp);	} else {	    linknext = linkp->l_forw;	}    }    return ((Link *)NULL);}/* linkto  - remember a file with outstanding links  * * DESCRIPTION * *	Linkto adds the specified file to the link chain.  Any subsequent *	calls to linkfrom which have the same inode will match the file *	just entered.  If not enough space is available to make the link *	then the item is not added to the link chain, and a NULL is *	returned to the calling function. * * PARAMETERS * *	char	*name	- name of file to remember *	Stat	*asb	- pointer to stat structure of file to remember * * RETURNS * * 	Returns a pointer to the associated link structure, or NULL when  *	linking is not possible.  * */#ifdef __STDC__Link *linkto(char *name, Stat *asb)#else    Link *linkto(name, asb)char           *name;Stat           *asb;#endif{    Link           *linkp;    Link           *linknext;    Path           *path;    Link          **abase;    for (linkp = *(LINKHASH(asb->sb_ino)); linkp; linkp = linknext) {	if (linkp->l_ino == asb->sb_ino && linkp->l_dev == asb->sb_dev) {	    if ((path = (Path *) mem_get(sizeof(Path))) == (Path *)NULL || 		(path->p_name = mem_str(name)) == (char *)NULL) {		return((Link *)NULL);	    }	    if (path->p_forw = linkp->l_path) {		if (linkp->l_path->p_forw) {		    linkp->l_path->p_forw->p_back = path;		}	    } else {		linkp->l_path = path;	    }	    path->p_back = (Path *)NULL;	    return(linkp);	} else {	    linknext = linkp->l_forw;	}    }    /*     * This is a brand new link, for which there is no other information     */    if ((asb->sb_mode & S_IFMT) == S_IFDIR	|| (linkp = (Link *) mem_get(sizeof(Link))) == (Link *)NULL	|| (linkp->l_name = mem_str(name)) == (char *)NULL) {	return ((Link *)NULL);    }    linkp->l_dev = asb->sb_dev;    linkp->l_ino = asb->sb_ino;    linkp->l_nlink = asb->sb_nlink - 1;    linkp->l_size = asb->sb_size;    linkp->l_path = (Path *)NULL;    if (linkp->l_forw = *(abase = LINKHASH(asb->sb_ino))) {	linkp->l_forw->l_back = linkp;    } else {	*abase = linkp;    }    linkp->l_back = (Link *)NULL;    return (linkp);}/* linkleft - complain about files with unseen links  * * DESCRIPTION * *	Linksleft scans through the link chain to see if there were any *	files which have outstanding links that were not processed by the *	archive.  For each file in the link chain for which there was not *	a file,  and error message is printed. */#ifdef __STDC__void linkleft(void)#else    void linkleft()#endif{    Link           *lp;    Link          **base;    for (base = linkbase; base < linkbase + NEL(linkbase); ++base) {	for (lp = *base; lp; lp = lp->l_forw) {	    if (lp->l_nlink) {		warn(lp->l_path->p_name, "Unseen link(s)");	    }	}    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区成人| 免费成人你懂的| 国产精品的网站| 亚洲摸摸操操av| 奇米777欧美一区二区| 一区二区三区.www| 久久国产精品99久久久久久老狼 | 成人午夜在线免费| 色偷偷一区二区三区| 欧美主播一区二区三区美女| 欧美一区二区三区视频免费| 久久久亚洲精品石原莉奈| 亚洲人成小说网站色在线| 奇米777欧美一区二区| 成人在线视频一区二区| 欧美视频中文字幕| 国产喂奶挤奶一区二区三区| 亚洲精品国产品国语在线app| 免费看日韩精品| 欧美中文字幕一区二区三区亚洲 | 亚洲色图另类专区| 国产精品一区免费在线观看| 99久久er热在这里只有精品66| 日韩欧美一二三四区| 欧美日韩精品是欧美日韩精品| 91老师国产黑色丝袜在线| 国产亚洲女人久久久久毛片| 亚洲午夜激情网页| 国产一区二区三区四区五区美女| 色婷婷综合在线| 日韩精品一区二区三区蜜臀| 亚洲欧洲三级电影| 蜜桃av一区二区三区| 欧美中文字幕亚洲一区二区va在线| 欧美大尺度电影在线| 麻豆成人久久精品二区三区红 | 成人一级黄色片| 日韩欧美电影在线| 日产欧产美韩系列久久99| 色综合视频一区二区三区高清| 亚洲三级视频在线观看| 国产午夜一区二区三区| 日韩国产欧美一区二区三区| 666欧美在线视频| 色婷婷久久久久swag精品| 美女视频第一区二区三区免费观看网站 | 精品国产91乱码一区二区三区 | 国产亚洲福利社区一区| 麻豆免费看一区二区三区| 久久久久国产一区二区三区四区| 粉嫩av一区二区三区在线播放| 26uuu国产电影一区二区| av亚洲精华国产精华精华| 亚洲精品ww久久久久久p站| 欧美一区二区三区视频| 麻豆成人久久精品二区三区小说| 国产亚洲福利社区一区| 欧美亚洲高清一区| 国产一区美女在线| 亚洲综合精品自拍| 久久久99精品久久| 欧美日本不卡视频| 色婷婷国产精品久久包臀| 成人h精品动漫一区二区三区| 精品一区二区免费视频| 婷婷中文字幕综合| 国产日韩欧美精品一区| 91超碰这里只有精品国产| 色欧美片视频在线观看在线视频| 精品亚洲porn| 成人av在线网站| 婷婷丁香久久五月婷婷| 亚洲香肠在线观看| 亚洲国产成人tv| 奇米四色…亚洲| 日韩不卡一二三区| 美女www一区二区| 国产真实乱偷精品视频免| 九九国产精品视频| 天天综合网天天综合色| 一区二区三区四区亚洲| 久久久亚洲高清| 久久一区二区三区国产精品| 丁香婷婷综合激情五月色| 日本欧美大码aⅴ在线播放| 亚洲超碰97人人做人人爱| 亚洲激情男女视频| 亚洲一区在线看| 亚洲福利电影网| 国产精品久久一级| 悠悠色在线精品| 亚洲va欧美va人人爽午夜| 亚洲午夜av在线| 日韩综合一区二区| 奇米四色…亚洲| 国产激情精品久久久第一区二区| 国产成人午夜高潮毛片| 成人午夜免费av| 欧洲精品一区二区| 欧美三级中文字幕在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 中文字幕av一区 二区| 国产日韩欧美精品电影三级在线| 亚洲天堂精品在线观看| 亚洲国产婷婷综合在线精品| 麻豆国产一区二区| 99r精品视频| 91精品麻豆日日躁夜夜躁| 久久精品夜色噜噜亚洲aⅴ| 樱花影视一区二区| 亚洲你懂的在线视频| 国内成人免费视频| 欧美午夜精品电影| 国产精品久久久久国产精品日日 | 国产精品一区二区久激情瑜伽| 99久久精品情趣| 欧美一级精品大片| 亚洲欧洲国产日本综合| 捆绑调教美女网站视频一区| 欧美午夜不卡视频| 亚洲三级视频在线观看| 美国精品在线观看| 日本一区二区三区dvd视频在线| 亚洲图片欧美一区| 日本韩国一区二区三区| 国产女人水真多18毛片18精品视频| 日日欢夜夜爽一区| 日韩欧美视频一区| 日韩av一区二区在线影视| 欧美在线视频不卡| 国产日韩欧美精品电影三级在线| 成人免费在线播放视频| 高清成人免费视频| 中文字幕一区av| av一本久道久久综合久久鬼色| 久久综合久久综合亚洲| 国产激情一区二区三区四区| 日韩午夜激情免费电影| 精彩视频一区二区三区| 中文字幕精品在线不卡| 国产成人精品免费看| 国产人妖乱国产精品人妖| 懂色av一区二区三区蜜臀| 国产精品乱码一区二三区小蝌蚪| 日本电影亚洲天堂一区| 日韩有码一区二区三区| 久久这里只有精品首页| 成人午夜碰碰视频| 偷拍日韩校园综合在线| 国产亚洲精久久久久久| 在线观看欧美日本| 国产精品77777竹菊影视小说| 久久精品亚洲乱码伦伦中文| 成人午夜激情在线| 蜜芽一区二区三区| 中文字幕中文字幕一区二区| 欧美日韩一区二区在线观看 | 91论坛在线播放| 麻豆精品蜜桃视频网站| 国产亚洲欧美一级| 久久久久久久久久久电影| 91免费版pro下载短视频| 青娱乐精品视频| 亚洲黄色免费电影| 久久香蕉国产线看观看99| 欧美一区二区视频在线观看| 91丝袜美女网| 国产成人精品aa毛片| 另类欧美日韩国产在线| 另类小说欧美激情| 丝袜亚洲另类欧美| 亚洲免费色视频| 亚洲精品国产精华液| 国产欧美日韩精品在线| 欧美精选午夜久久久乱码6080| 在线视频国产一区| 91在线观看成人| 色婷婷精品大视频在线蜜桃视频 | 26uuu久久天堂性欧美| 日韩一级在线观看| 91精品国产综合久久精品| 欧美一区二区三区四区高清| 26uuu欧美| 国产亚洲欧美激情| 中文字幕国产精品一区二区| 欧美tickling挠脚心丨vk| 欧美吞精做爰啪啪高潮| 精品国产一区二区三区av性色 | 午夜久久久久久久久久一区二区| 日韩avvvv在线播放| 国产伦精一区二区三区| 色婷婷av一区二区三区gif| 在线观看欧美精品| 久久精品人人做人人爽97| 国产精品私人自拍| 美女视频网站久久| 国产一区二区福利| 欧洲亚洲精品在线| 国产亚洲一本大道中文在线| 一区二区三区国产|