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

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

?? devno.c

?? busybox最新版本. 嵌入式編程必不可少之工具.
?? C
字號:
/* vi: set sw=4 ts=4: *//* * devno.c - find a particular device by its device number (major/minor) * * Copyright (C) 2000, 2001, 2003 Theodore Ts'o * Copyright (C) 2001 Andreas Dilger * * %Begin-Header% * This file may be redistributed under the terms of the * GNU Lesser General Public License. * %End-Header% */#include <stdio.h>#include <string.h>#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#include <stdlib.h>#include <string.h>#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#include <sys/stat.h>#include <dirent.h>#ifdef HAVE_ERRNO_H#include <errno.h>#endif#ifdef HAVE_SYS_MKDEV_H#include <sys/mkdev.h>#endif#include "blkidP.h"struct dir_list {	char	*name;	struct dir_list *next;};char *blkid_strndup(const char *s, int length){	char *ret;	if (!s)		return NULL;	if (!length)		length = strlen(s);	ret = xmalloc(length + 1);	strncpy(ret, s, length);	ret[length] = '\0';	return ret;}char *blkid_strdup(const char *s){	return blkid_strndup(s, 0);}/* * This function adds an entry to the directory list */static void add_to_dirlist(const char *name, struct dir_list **list){	struct dir_list *dp;	dp = xmalloc(sizeof(struct dir_list));	dp->name = blkid_strdup(name);	dp->next = *list;	*list = dp;}/* * This function frees a directory list */static void free_dirlist(struct dir_list **list){	struct dir_list *dp, *next;	for (dp = *list; dp; dp = next) {		next = dp->next;		free(dp->name);		free(dp);	}	*list = NULL;}static void scan_dir(char *dir_name, dev_t devno, struct dir_list **list,			    char **devname){	DIR	*dir;	struct dirent *dp;	char	path[1024];	int	dirlen;	struct stat st;	if ((dir = opendir(dir_name)) == NULL)		return;	dirlen = strlen(dir_name) + 2;	while ((dp = readdir(dir)) != 0) {		if (dirlen + strlen(dp->d_name) >= sizeof(path))			continue;		if (dp->d_name[0] == '.' &&		    ((dp->d_name[1] == 0) ||		     ((dp->d_name[1] == '.') && (dp->d_name[2] == 0))))			continue;		sprintf(path, "%s/%s", dir_name, dp->d_name);		if (stat(path, &st) < 0)			continue;		if (S_ISDIR(st.st_mode))			add_to_dirlist(path, list);		else if (S_ISBLK(st.st_mode) && st.st_rdev == devno) {			*devname = blkid_strdup(path);			DBG(DEBUG_DEVNO,			    printf("found 0x%llx at %s (%p)\n", devno,				   path, *devname));			break;		}	}	closedir(dir);}/* Directories where we will try to search for device numbers */const char *blkid_devdirs[] = { "/devices", "/devfs", "/dev", NULL };/* * This function finds the pathname to a block device with a given * device number.  It returns a pointer to allocated memory to the * pathname on success, and NULL on failure. */char *blkid_devno_to_devname(dev_t devno){	struct dir_list *list = NULL, *new_list = NULL;	char *devname = NULL;	const char **dir;	/*	 * Add the starting directories to search in reverse order of	 * importance, since we are using a stack...	 */	for (dir = blkid_devdirs; *dir; dir++)		add_to_dirlist(*dir, &list);	while (list) {		struct dir_list *current = list;		list = list->next;		DBG(DEBUG_DEVNO, printf("directory %s\n", current->name));		scan_dir(current->name, devno, &new_list, &devname);		free(current->name);		free(current);		if (devname)			break;		/*		 * If we're done checking at this level, descend to		 * the next level of subdirectories. (breadth-first)		 */		if (list == NULL) {			list = new_list;			new_list = NULL;		}	}	free_dirlist(&list);	free_dirlist(&new_list);	if (!devname) {		DBG(DEBUG_DEVNO,		    printf("blkid: cannot find devno 0x%04lx\n",			   (unsigned long) devno));	} else {		DBG(DEBUG_DEVNO,		    printf("found devno 0x%04llx as %s\n", devno, devname));	}	return devname;}#ifdef TEST_PROGRAMint main(int argc, char** argv){	char	*devname, *tmp;	int	major, minor;	dev_t	devno;	const char *errmsg = "Cannot parse %s: %s\n";	blkid_debug_mask = DEBUG_ALL;	if ((argc != 2) && (argc != 3)) {		fprintf(stderr, "Usage:\t%s device_number\n\t%s major minor\n"			"Resolve a device number to a device name\n",			argv[0], argv[0]);		exit(1);	}	if (argc == 2) {		devno = strtoul(argv[1], &tmp, 0);		if (*tmp) {			fprintf(stderr, errmsg, "device number", argv[1]);			exit(1);		}	} else {		major = strtoul(argv[1], &tmp, 0);		if (*tmp) {			fprintf(stderr, errmsg, "major number", argv[1]);			exit(1);		}		minor = strtoul(argv[2], &tmp, 0);		if (*tmp) {			fprintf(stderr, errmsg, "minor number", argv[2]);			exit(1);		}		devno = makedev(major, minor);	}	printf("Looking for device 0x%04Lx\n", devno);	devname = blkid_devno_to_devname(devno);	free(devname);	return 0;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看精品 | 国产一区在线视频| 国产精品国产成人国产三级| 91精品久久久久久久99蜜桃| 91网址在线看| 国产99一区视频免费| 韩国av一区二区| 美女在线观看视频一区二区| 成人欧美一区二区三区在线播放| 26uuu国产一区二区三区| 欧美日韩激情一区二区| 色婷婷激情一区二区三区| 99r国产精品| 成人av在线影院| 成人av在线网站| 99免费精品视频| 91香蕉国产在线观看软件| 91原创在线视频| 在线免费观看成人短视频| 欧美在线一二三| 欧美精三区欧美精三区| 日韩亚洲欧美高清| 欧美sm极限捆绑bd| 久久婷婷综合激情| 国产精品三级电影| 亚洲一区中文在线| 日韩二区三区在线观看| 久久99精品一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 91精品国产麻豆| 亚洲国产精品激情在线观看| 亚洲色图欧洲色图婷婷| 日本aⅴ亚洲精品中文乱码| 精品制服美女丁香| 91视频在线观看免费| 欧美日韩一区二区在线视频| 日韩一区二区三区视频| 国产视频亚洲色图| 视频一区国产视频| 国产69精品久久777的优势| 99精品久久免费看蜜臀剧情介绍| 欧美视频中文字幕| 国产精品乱人伦中文| 日韩电影免费一区| 成人av电影在线观看| 日韩丝袜美女视频| 亚洲成人激情社区| 99久免费精品视频在线观看 | 欧美一区二区三区免费在线看| 国产欧美日韩三区| 麻豆精品久久精品色综合| 欧美伊人久久大香线蕉综合69| 欧美国产成人精品| 国产成人av电影在线观看| 欧美精品 国产精品| 一区二区三区不卡视频| 97久久人人超碰| 国产精品电影一区二区| 国产成人综合亚洲91猫咪| 精品区一区二区| 亚洲一区在线观看免费观看电影高清 | 欧美男人的天堂一二区| 夜夜嗨av一区二区三区| 成人禁用看黄a在线| 国产欧美日韩三区| 国产福利不卡视频| 国产欧美日产一区| 国产精品一色哟哟哟| 久久精品夜色噜噜亚洲aⅴ| 狠狠色综合日日| 国产欧美一区二区精品性色超碰| 国产一区二区三区四区五区美女| 欧美日本在线一区| 蜜臀久久99精品久久久画质超高清| 欧美在线你懂得| 日本成人在线不卡视频| 日韩一区二区三区四区| 美国毛片一区二区| 久久精品欧美日韩| 99国产精品国产精品毛片| 一区二区三区成人| 精品国产免费一区二区三区四区 | 亚洲成人av一区| 精品成人私密视频| www.亚洲精品| 亚洲综合成人在线| 久久久亚洲精华液精华液精华液| 91婷婷韩国欧美一区二区| 亚洲电影中文字幕在线观看| 久久亚洲综合色| 欧美日韩亚洲综合| 成人免费va视频| 免费视频最近日韩| 日本一区二区动态图| 欧美精品色综合| 成人18视频日本| 韩国一区二区视频| 肉肉av福利一精品导航| 国产精品美女www爽爽爽| 欧美一级淫片007| 欧美亚洲愉拍一区二区| 成人激情小说乱人伦| 国模少妇一区二区三区| 日韩 欧美一区二区三区| 玉米视频成人免费看| 欧美韩国日本综合| 精品欧美乱码久久久久久1区2区| 91久久线看在观草草青青| 国产精品中文字幕日韩精品| 麻豆91精品91久久久的内涵| 亚洲444eee在线观看| 亚洲综合丁香婷婷六月香| 亚洲黄色小视频| 亚洲色图欧洲色图婷婷| 《视频一区视频二区| 精品国产成人系列| 精品国产一区二区三区忘忧草 | 国产精品盗摄一区二区三区| 久久日韩粉嫩一区二区三区| 欧美精品一区二区精品网| 精品精品国产高清一毛片一天堂| 日韩精品综合一本久道在线视频| 欧美日韩国产高清一区二区三区 | 亚洲乱码日产精品bd| 亚洲蜜臀av乱码久久精品| 一区二区成人在线| 天堂av在线一区| 韩国精品一区二区| 国产成人8x视频一区二区| 91丨porny丨蝌蚪视频| 欧美性极品少妇| 日韩欧美国产精品| 欧美成人国产一区二区| 国产欧美日韩视频在线观看| 亚洲欧美激情小说另类| 日韩精品久久久久久| 激情综合网激情| 色一情一伦一子一伦一区| 欧美精品在线视频| 中文字幕不卡的av| 亚洲国产精品尤物yw在线观看| 久久国内精品视频| 日本精品视频一区二区三区| 欧美一级专区免费大片| 国产精品第一页第二页第三页| 日日夜夜免费精品| 成人一区二区在线观看| 欧美一卡2卡三卡4卡5免费| 亚洲男帅同性gay1069| 六月丁香婷婷色狠狠久久| 色综合久久中文字幕综合网| 精品国产人成亚洲区| 亚洲在线一区二区三区| 成人av免费观看| 久久久99久久| 韩日欧美一区二区三区| 欧美日韩精品欧美日韩精品一综合| 国产色产综合色产在线视频| 青青草国产成人av片免费| 欧美色倩网站大全免费| 综合网在线视频| av一区二区三区四区| 亚洲精品一区二区三区精华液 | 蜜桃在线一区二区三区| 欧美日韩一二区| 亚洲国产日韩综合久久精品| 色噜噜狠狠成人中文综合| 国产精品乱人伦| www.亚洲国产| 国产精品三级在线观看| 不卡av在线免费观看| 国产精品久久久久久亚洲伦| 国产成人精品免费视频网站| 中文字幕巨乱亚洲| 99re热这里只有精品视频| 亚洲视频一区在线| 欧美日韩一二区| 精品一区二区在线观看| 精品国产第一区二区三区观看体验 | 亚洲精品乱码久久久久久黑人 | 国产亲近乱来精品视频| 波多野结衣亚洲一区| 亚洲一区二区黄色| 欧美成人a视频| 99在线热播精品免费| 一区二区三区四区精品在线视频| 欧美午夜精品一区二区三区| 免费看日韩a级影片| 国产精品午夜在线观看| 在线免费一区三区| 美腿丝袜亚洲一区| 国产精品美女久久久久久久久| 91久久国产综合久久| 日韩精品国产欧美| 亚洲日本丝袜连裤袜办公室| 在线看不卡av| 国产91精品一区二区麻豆网站| 一区二区三区在线看| 久久久国产午夜精品| 欧美综合久久久|