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

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

?? getgrent_r.c

?? package of develop dns
?? C
字號:
/* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1998-1999 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */#if defined(LIBC_SCCS) && !defined(lint)static const char rcsid[] = "$Id: getgrent_r.c,v 1.5.206.1 2004/03/09 08:33:35 marka Exp $";#endif /* LIBC_SCCS and not lint */#include <port_before.h>#if !defined(_REENTRANT) || !defined(DO_PTHREADS) || !defined(WANT_IRS_PW)	static int getgrent_r_not_required = 0;#else#include <errno.h>#include <string.h>#include <stdio.h>#include <sys/types.h>#if (defined(POSIX_GETGRNAM_R) || defined(POSIX_GETGRGID_R)) && \    defined(_POSIX_PTHREAD_SEMANTICS)	/* turn off solaris remapping in <grp.h> */#define _UNIX95#undef _POSIX_PTHREAD_SEMANTICS#include <grp.h>#define _POSIX_PTHREAD_SEMANTICS 1#else#include <grp.h>#endif#include <sys/param.h>#include <port_after.h>#ifdef GROUP_R_RETURNstatic intcopy_group(struct group *, struct group *, char *buf, int buflen);/* POSIX 1003.1c */#ifdef POSIX_GETGRNAM_Rint__posix_getgrnam_r(const char *name,  struct group *gptr,		char *buf, int buflen, struct group **result) {#elseintgetgrnam_r(const char *name,  struct group *gptr,		char *buf, size_t buflen, struct group **result) {#endif	struct group *ge = getgrnam(name);	int res;	if (ge == NULL) {		*result = NULL;		return (0);	}	res = copy_group(ge, gptr, buf, buflen);	*result = res ? NULL : gptr;	return (res);}#ifdef POSIX_GETGRNAM_Rstruct group *getgrnam_r(const char *name,  struct group *gptr,		char *buf, int buflen) {	struct group *ge = getgrnam(name);	int res;	if (ge == NULL)		return (NULL);	res = copy_group(ge, gptr, buf, buflen);	return (res ? NULL : gptr);}#endif /* POSIX_GETGRNAM_R *//* POSIX 1003.1c */#ifdef POSIX_GETGRGID_Rint__posix_getgrgid_r(gid_t gid, struct group *gptr,		char *buf, int buflen, struct group **result) {#else /* POSIX_GETGRGID_R */intgetgrgid_r(gid_t gid, struct group *gptr,		char *buf, size_t buflen, struct group **result) {#endif /* POSIX_GETGRGID_R */	struct group *ge = getgrgid(gid);	int res;	if (ge == NULL) {		*result = NULL;		return (0);	}	res = copy_group(ge, gptr, buf, buflen);	*result = res ? NULL : gptr;	return (res);}#ifdef POSIX_GETGRGID_Rstruct group *getgrgid_r(gid_t gid, struct group *gptr,		char *buf, int buflen) {	struct group *ge = getgrgid(gid);	int res;	if (ge == NULL)		return (NULL);	res = copy_group(ge, gptr, buf, buflen);	return (res ? NULL : gptr);}#endif/* *	These assume a single context is in operation per thread. *	If this is not the case we will need to call irs directly *	rather than through the base functions. */GROUP_R_RETURNgetgrent_r(struct group *gptr, GROUP_R_ARGS) {	struct group *ge = getgrent();	int res;	if (ge == NULL) {		return (GROUP_R_BAD);	}	res = copy_group(ge, gptr, buf, buflen);	return (res ? GROUP_R_BAD : GROUP_R_OK);}GROUP_R_SET_RETURNsetgrent_r(GROUP_R_ENT_ARGS) {	setgrent();#ifdef GROUP_R_SET_RESULT	return (GROUP_R_SET_RESULT);#endif}GROUP_R_END_RETURNendgrent_r(GROUP_R_ENT_ARGS) {	endgrent();	GROUP_R_END_RESULT(GROUP_R_OK);}#if 0	/* XXX irs does not have a fgetgrent() */GROUP_R_RETURNfgetgrent_r(FILE *f, struct group *gptr, GROUP_R_ARGS) {	struct group *ge = fgetgrent(f);	int res;	if (ge == NULL)		return (GROUP_R_BAD);	res = copy_group(ge, gptr, buf, buflen);	return (res ? GROUP_R_BAD : GROUP_R_OK);}#endif/* Private */static intcopy_group(struct group *ge, struct group *gptr, char *buf, int buflen) {	char *cp;	int i, n;	int numptr, len;	/* Find out the amount of space required to store the answer. */	numptr = 1; /* NULL ptr */	len = (char *)ALIGN(buf) - buf;	for (i = 0; ge->gr_mem[i]; i++, numptr++) {		len += strlen(ge->gr_mem[i]) + 1;	}	len += strlen(ge->gr_name) + 1;	len += strlen(ge->gr_passwd) + 1;	len += numptr * sizeof(char*);		if (len > buflen) {		errno = ERANGE;		return (ERANGE);	}	/* copy group id */	gptr->gr_gid = ge->gr_gid;	cp = (char *)ALIGN(buf) + numptr * sizeof(char *);	/* copy official name */	n = strlen(ge->gr_name) + 1;	strcpy(cp, ge->gr_name);	gptr->gr_name = cp;	cp += n;	/* copy member list */	gptr->gr_mem = (char **)ALIGN(buf);	for (i = 0 ; ge->gr_mem[i]; i++) {		n = strlen(ge->gr_mem[i]) + 1;		strcpy(cp, ge->gr_mem[i]);		gptr->gr_mem[i] = cp;		cp += n;	}	gptr->gr_mem[i] = NULL;	/* copy password */	n = strlen(ge->gr_passwd) + 1;	strcpy(cp, ge->gr_passwd);	gptr->gr_passwd = cp;	cp += n;	return (0);}#else /* GROUP_R_RETURN */	static int getgrent_r_unknown_system = 0;#endif /* GROUP_R_RETURN */#endif /* !def(_REENTRANT) || !def(DO_PTHREADS) || !def(WANT_IRS_PW) */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三级电影| 91麻豆精品国产91久久久使用方法 | 五月婷婷综合在线| 精品视频资源站| 亚洲一本大道在线| 欧美一区二区三区影视| 国产在线视频精品一区| 欧美国产视频在线| 91丨porny丨户外露出| 一区二区三区国产精品| 欧美久久高跟鞋激| 久久国产剧场电影| 国产精品亲子乱子伦xxxx裸| 91丝袜美腿高跟国产极品老师 | 久久嫩草精品久久久久| 国产成人精品一区二区三区四区| 国产精品看片你懂得| 91美女精品福利| 午夜精品成人在线视频| 精品国产乱子伦一区| 成人激情图片网| 亚洲成人你懂的| 精品久久久久久久久久久院品网 | 成人不卡免费av| 亚洲自拍另类综合| 欧美大肚乱孕交hd孕妇| 99国产一区二区三精品乱码| 日韩精品一级中文字幕精品视频免费观看| 日韩视频在线你懂得| 成人免费视频caoporn| 亚洲成人免费在线观看| 中文一区一区三区高中清不卡| 色综合久久久久| 开心九九激情九九欧美日韩精美视频电影 | 亚洲精品国产成人久久av盗摄| 欧美色欧美亚洲另类二区| 久久99精品久久久久| 夜夜揉揉日日人人青青一国产精品| 欧美一级欧美一级在线播放| 粉嫩av一区二区三区粉嫩| 亚洲成av人**亚洲成av**| 国产清纯在线一区二区www| 在线亚洲一区二区| 国产精品一区三区| 午夜激情一区二区| 中文字幕中文字幕在线一区| 91精品在线观看入口| 99国产欧美久久久精品| 国产一区91精品张津瑜| 亚洲午夜精品网| 欧美精品一二三| 欧洲精品一区二区| av网站免费线看精品| 久久精品99久久久| 一个色综合av| 亚洲欧洲无码一区二区三区| www精品美女久久久tv| 精品视频999| 色综合久久中文综合久久牛| 粉嫩嫩av羞羞动漫久久久| 美女视频黄频大全不卡视频在线播放| 亚洲男同性恋视频| 国产精品久久久久影院色老大 | 中文字幕在线一区二区三区| 日韩欧美亚洲国产另类| 欧美日韩精品电影| 91官网在线免费观看| 91猫先生在线| 色悠悠亚洲一区二区| 不卡一区在线观看| 成人免费视频一区| 成人黄色777网| 国产成人午夜精品影院观看视频| 精品一区二区三区的国产在线播放 | 亚洲欧美另类久久久精品2019| 亚洲精品在线免费观看视频| 日韩美女主播在线视频一区二区三区| 欧美吞精做爰啪啪高潮| 色伊人久久综合中文字幕| 91免费看`日韩一区二区| av网站一区二区三区| 波多野结衣亚洲| 91在线视频播放地址| 波多野结衣欧美| 91麻豆精品一区二区三区| 97精品电影院| 91行情网站电视在线观看高清版| 色婷婷综合激情| 在线观看视频一区| 欧美日韩一区三区四区| 7777女厕盗摄久久久| 日韩精品专区在线| 久久久久久久久久久久久夜| 国产精品免费网站在线观看| 18欧美亚洲精品| 亚洲成av人片在线观看无码| 强制捆绑调教一区二区| 久久99精品视频| 国产成人鲁色资源国产91色综| 粉嫩蜜臀av国产精品网站| 99精品久久只有精品| 欧美三级韩国三级日本一级| 日韩欧美亚洲国产另类| 国产欧美精品区一区二区三区 | 久久久久亚洲蜜桃| 亚洲人妖av一区二区| 亚洲成va人在线观看| 国产在线一区观看| 99久久久无码国产精品| 欧美疯狂做受xxxx富婆| 2023国产精品自拍| 日韩码欧中文字| 麻豆成人久久精品二区三区小说| 成人综合在线观看| 欧美日韩激情一区| 国产亚洲精品bt天堂精选| 一级做a爱片久久| 国产一区二区三区免费观看| 91黄色免费观看| 精品99一区二区三区| 亚洲免费三区一区二区| 久久99精品久久久久婷婷| 色噜噜狠狠一区二区三区果冻| 欧美一区二区三区人| 国产精品久久影院| 日韩精品乱码免费| 97se亚洲国产综合自在线 | 国内久久婷婷综合| 欧美丝袜丝交足nylons图片| 国产日韩欧美制服另类| 亚洲福利电影网| 成人毛片在线观看| 日韩欧美国产系列| 亚洲影院理伦片| 懂色av中文一区二区三区| 欧美一级二级三级蜜桃| 亚洲欧洲av色图| 国产美女视频一区| 欧美裸体bbwbbwbbw| 自拍偷拍国产精品| 国产精品一区二区三区四区| 欧美精品国产精品| 亚洲品质自拍视频网站| 国产美女在线精品| 日韩欧美三级在线| 亚洲成人免费av| 日本高清不卡aⅴ免费网站| 欧美激情一二三区| 国产毛片精品一区| 日韩欧美在线一区二区三区| 亚洲国产精品影院| 日本精品一级二级| 亚洲欧美一区二区三区孕妇| 国产91露脸合集magnet| 精品蜜桃在线看| 久久国产剧场电影| 欧美变态口味重另类| 男女男精品网站| 制服.丝袜.亚洲.另类.中文| 一区二区三区av电影| 91日韩在线专区| 国产精品二三区| av不卡一区二区三区| 国产精品国产精品国产专区不蜜 | 成人精品视频一区二区三区| 国产亚洲综合色| 国产精品一级黄| 国产人妖乱国产精品人妖| 国产精品一级在线| 久久精品视频在线看| 国产精品18久久久久久久久 | 欧美综合欧美视频| 亚洲国产日韩av| 91精品综合久久久久久| 欧美aaa在线| 欧美成人精品1314www| 精东粉嫩av免费一区二区三区| 欧美一级一级性生活免费录像| 日韩影院免费视频| 精品国产精品一区二区夜夜嗨| 激情综合亚洲精品| 国产亚洲短视频| 99久久99久久精品免费看蜜桃| 日韩毛片视频在线看| 欧美丝袜自拍制服另类| 日韩av一区二区三区| 精品国产一二三区| 国产精品一卡二卡| 亚洲免费观看高清在线观看| 欧美视频中文一区二区三区在线观看| 亚洲网友自拍偷拍| 日韩精品一区在线| 国产成人在线视频免费播放| 亚洲视频图片小说| 欧美色图天堂网| 久久99精品久久久久久久久久久久 | 香蕉成人伊视频在线观看| 日韩一卡二卡三卡四卡| 国产风韵犹存在线视精品| 亚洲人成伊人成综合网小说|