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

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

?? du.c

?? Linux.Programming.by example 的源代碼絕對經典
?? C
?? 第 1 頁 / 共 2 頁
字號:
	  && 1 < sb->st_nlink	  && hash_ins (sb->st_ino, sb->st_dev)))    {      /* Note that we must not simply return here.	 We still have to update prev_level and maybe propagate	 some sums up the hierarchy.  */      size = 0;      print = 0;    }  else    {      size = (apparent_size	      ? sb->st_size	      : ST_NBLOCKS (*sb) * ST_NBLOCKSIZE);    }  if (first_call)    {      n_alloc = info->level + 10;      sum_ent = XCALLOC (uintmax_t, n_alloc);      sum_subdir = XCALLOC (uintmax_t, n_alloc);    }  else    {      /* FIXME: it's a shame that we need these `size_t' casts to avoid	 warnings from gcc about `comparison between signed and unsigned'.	 Probably unavoidable, assuming that the members of struct FTW	 are of type `int' (historical), since I want variables like	 n_alloc and prev_level to have types that make sense.  */      if (n_alloc <= (size_t) info->level)	{	  n_alloc = info->level * 2;	  sum_ent = XREALLOC (sum_ent, uintmax_t, n_alloc);	  sum_subdir = XREALLOC (sum_subdir, uintmax_t, n_alloc);	}    }  size_to_print = size;  if (! first_call)    {      if ((size_t) info->level == prev_level)	{	  /* This is usually the most common case.  Do nothing.  */	}      else if ((size_t) info->level > prev_level)	{	  /* Descending the hierarchy.	     Clear the accumulators for *all* levels between prev_level	     and the current one.  The depth may change dramatically,	     e.g., from 1 to 10.  */	  int i;	  for (i = prev_level + 1; i <= info->level; i++)	    sum_ent[i] = sum_subdir[i] = 0;	}      else /* info->level < prev_level */	{	  /* Ascending the hierarchy.	     nftw processes a directory only after all entries in that	     directory have been processed.  When the depth decreases,	     propagate sums from the children (prev_level) to the parent.	     Here, the current level is always one smaller than the	     previous one.  */	  assert ((size_t) info->level == prev_level - 1);	  size_to_print += sum_ent[prev_level];	  if (!opt_separate_dirs)	    size_to_print += sum_subdir[prev_level];	  sum_subdir[info->level] += (sum_ent[prev_level]				      + sum_subdir[prev_level]);	}    }  prev_level = info->level;  first_call = 0;  /* Let the size of a directory entry contribute to the total for the     containing directory, unless --separate-dirs (-S) is specified.  */  if ( ! (opt_separate_dirs && IS_FTW_DIR_TYPE (file_type)))    sum_ent[info->level] += size;  /* Even if this directory is unreadable or we can't chdir into it,     do let its size contribute to the total, ... */  tot_size += size;  /* ... but don't print out a total for it, since without the size(s)     of any potential entries, it could be very misleading.  */  if (file_type == FTW_DNR || file_type == FTW_DCH)    return 0;  /* If we're not counting an entry, e.g., because it's a hard link     to a file we've already counted (and --count-links), then don't     print a line for it.  */  if (!print)    return 0;  /* FIXME: This looks suspiciously like it could be simplified.  */  if ((IS_FTW_DIR_TYPE (file_type) &&		     (info->level <= max_depth || info->level == 0))      || ((opt_all && info->level <= max_depth) || info->level == 0))    {      print_only_size (size_to_print);      fputc ('\t', stdout);      if (arg_length)	{	  /* Print the file name, but without the `.' or `/.'	     directory suffix that we may have added in main.  */	  /* Print everything before the part we appended.  */	  fwrite (file, arg_length, 1, stdout);	  /* Print everything after what we appended.  */	  fputs (file + arg_length + suffix_length		 + (file[arg_length + suffix_length] == '/'), stdout);	}      else	{	  fputs (file, stdout);	}      fputc ('\n', stdout);      fflush (stdout);    }  return 0;}static intis_symlink_to_dir (char const *file){  char *f;  struct stat sb;  ASSIGN_STRDUPA (f, file);  strip_trailing_slashes (f);  return (lstat (f, &sb) == 0 && S_ISLNK (sb.st_mode)	  && stat (f, &sb) == 0 && S_ISDIR (sb.st_mode));}/* Recursively print the sizes of the directories (and, if selected, files)   named in FILES, the last entry of which is NULL.   FTW_FLAGS controls how nftw works.   Return nonzero upon error.  */static intdu_files (char **files, int ftw_flags){  int fail = 0;  int i;  for (i = 0; files[i]; i++)    {      char *file = files[i];      char *orig = file;      int err;      arg_length = 0;      if (!print_totals)	hash_clear (htab);      /* When dereferencing only command line arguments, we're using	 nftw's FTW_PHYS flag, so a symlink-to-directory specified on	 the command line wouldn't normally be dereferenced.  To work	 around that, we incur the overhead of appending `/.' (or `.')	 now, and later removing it each time we output the name of	 a derived file or directory name.  */      if (opt_dereference_arguments && is_symlink_to_dir (file))	{	  size_t len = strlen (file);	  /* Append `/.', but if there's already a trailing slash,	     append only the `.'.  */	  char const *suffix = (file[len - 1] == '/' ? "." : "/.");	  char *new_file;	  suffix_length = strlen (suffix);	  new_file = xmalloc (len + suffix_length + 1);	  memcpy (mempcpy (new_file, file, len), suffix, suffix_length + 1);	  arg_length = len;	  file = new_file;	}      err = nftw (file, process_file, MAX_N_DESCRIPTORS, ftw_flags);      if (err)	error (0, errno, "%s", quote (orig));      fail |= err;      if (arg_length)	free (file);    }  if (print_totals)    print_size (tot_size, _("total"));  return fail;}intmain (int argc, char **argv){  int c;  char *cwd_only[2];  int max_depth_specified = 0;  char **files;  int fail;  /* Bit flags that control how nftw works.  */  int ftw_flags = FTW_DEPTH | FTW_PHYS | FTW_CHDIR;  /* If nonzero, display only a total for each argument. */  int opt_summarize_only = 0;  cwd_only[0] = ".";  cwd_only[1] = NULL;  program_name = argv[0];  setlocale (LC_ALL, "");  bindtextdomain (PACKAGE, LOCALEDIR);  textdomain (PACKAGE);  atexit (close_stdout);  exclude = new_exclude ();  human_output_opts = human_options (getenv ("DU_BLOCK_SIZE"), false,				     &output_block_size);  fail = 0;  while ((c = getopt_long (argc, argv, "abchHklmsxB:DLSX:", long_options, NULL))	 != -1)    {      long int tmp_long;      switch (c)	{	case 0:			/* Long option. */	  break;	case 'a':	  opt_all = 1;	  break;	case APPARENT_SIZE_OPTION:	  apparent_size = 1;	  break;	case 'b':	  apparent_size = 1;	  human_output_opts = 0;	  output_block_size = 1;	  break;	case 'c':	  print_totals = 1;	  break;	case 'h':	  human_output_opts = human_autoscale | human_SI | human_base_1024;	  output_block_size = 1;	  break;	case 'H':	  human_output_opts = human_autoscale | human_SI;	  output_block_size = 1;	  break;	case 'k':	  human_output_opts = 0;	  output_block_size = 1024;	  break;	case MAX_DEPTH_OPTION:		/* --max-depth=N */	  if (xstrtol (optarg, NULL, 0, &tmp_long, NULL) == LONGINT_OK	      && 0 <= tmp_long && tmp_long <= INT_MAX)	    {	      max_depth_specified = 1;	      max_depth = (int) tmp_long;	    }	  else	    {	      error (0, 0, _("invalid maximum depth %s"),		     quote (optarg));	      fail = 1;	    } 	  break;	case 'm': /* obsolescent */	  human_output_opts = 0;	  output_block_size = 1024 * 1024;	  break;	case 'l':	  opt_count_all = 1;	  break;	case 's':	  opt_summarize_only = 1;	  break;	case 'x':	  ftw_flags |= FTW_MOUNT;	  break;	case 'B':	  human_output_opts = human_options (optarg, true, &output_block_size);	  break;	case 'D':	  opt_dereference_arguments = 1;	  break;	case 'L':	  ftw_flags &= ~FTW_PHYS;	  break;	case 'S':	  opt_separate_dirs = 1;	  break;	case 'X':	  if (add_exclude_file (add_exclude, exclude, optarg,				EXCLUDE_WILDCARDS, '\n'))	    {	      error (0, errno, "%s", quotearg_colon (optarg));	      fail = 1;	    }	  break;	case EXCLUDE_OPTION:	  add_exclude (exclude, optarg, EXCLUDE_WILDCARDS);	  break;	case_GETOPT_HELP_CHAR;	case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);	default:	  fail = 1;	}    }  if (fail)    usage (EXIT_FAILURE);  if (opt_all && opt_summarize_only)    {      error (0, 0, _("cannot both summarize and show all entries"));      usage (EXIT_FAILURE);    }  if (opt_summarize_only && max_depth_specified && max_depth == 0)    {      error (0, 0,	     _("warning: summarizing is the same as using --max-depth=0"));    }  if (opt_summarize_only && max_depth_specified && max_depth != 0)    {      error (0, 0,	     _("warning: summarizing conflicts with --max-depth=%d"),	       max_depth);      usage (EXIT_FAILURE);    }  if (opt_summarize_only)    max_depth = 0;  files = (optind == argc ? cwd_only : argv + optind);  /* Initialize the hash structure for inode numbers.  */  hash_init ();  exit (du_files (files, ftw_flags) || G_fail	? EXIT_FAILURE : EXIT_SUCCESS);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美精品电影三级在线 | 亚洲色图清纯唯美| 久久综合久久综合亚洲| 欧美大片在线观看一区二区| 欧美精品久久一区二区三区| 欧美嫩在线观看| 欧美一区二区三区精品| 91精品国产综合久久国产大片| 欧美色成人综合| 3d成人动漫网站| 精品国产91洋老外米糕| 久久久久国产精品免费免费搜索| 国产网站一区二区| 亚洲欧洲日产国码二区| 亚洲在线视频免费观看| 丝袜美腿亚洲综合| 国产精品亚洲综合一区在线观看| 高清不卡一二三区| 一本大道综合伊人精品热热| 欧美理论电影在线| 久久日韩精品一区二区五区| 国产精品免费av| 亚洲成av人片在www色猫咪| 久久精品国产99国产精品| 粉嫩一区二区三区性色av| 色一情一伦一子一伦一区| 91精品欧美综合在线观看最新| 久久久亚洲欧洲日产国码αv| 国产精品第四页| 日韩电影免费一区| 成人av在线网| 日韩一级二级三级精品视频| 中文字幕亚洲一区二区va在线| 首页亚洲欧美制服丝腿| 国产白丝精品91爽爽久久| 色诱亚洲精品久久久久久| 日韩免费高清电影| 亚洲麻豆国产自偷在线| 蜜臂av日日欢夜夜爽一区| 91美女在线观看| 亚洲精品一区二区精华| 亚洲在线成人精品| 福利电影一区二区三区| 欧美日韩高清一区| 亚洲日本在线看| 国产一区91精品张津瑜| 欧美美女bb生活片| 亚洲视频图片小说| 国产精品资源在线观看| 日韩一区二区电影网| 一区二区三区四区激情| 成人午夜在线免费| ww久久中文字幕| 日韩在线一区二区| 欧美色区777第一页| 一区在线观看免费| 成人小视频免费观看| 久久亚洲精华国产精华液| 丝袜亚洲另类欧美综合| 欧美日韩中文字幕精品| 亚洲靠逼com| 一本久久a久久精品亚洲| 中文字幕 久热精品 视频在线| 久久99精品久久久久久国产越南 | 国产盗摄女厕一区二区三区 | 美女视频黄久久| 欧美日韩综合不卡| 亚洲成在线观看| 在线观看精品一区| 亚洲乱码中文字幕综合| 91热门视频在线观看| 国产精品久久久久精k8 | 欧美伊人久久久久久午夜久久久久| 国产精品毛片大码女人| 成人中文字幕在线| 一区视频在线播放| 一本久久综合亚洲鲁鲁五月天| 日韩码欧中文字| 色丁香久综合在线久综合在线观看| 中文字幕亚洲区| 色又黄又爽网站www久久| 亚洲精品高清视频在线观看| 色综合婷婷久久| 亚洲午夜久久久久| 欧美一区二区三区在线看| 人人精品人人爱| 中文字幕精品一区二区三区精品 | 91色porny蝌蚪| 亚洲精品成人少妇| 欧美日韩一区二区三区在线看| 亚洲在线成人精品| 日韩视频免费直播| 国产成人亚洲综合a∨婷婷| 欧美国产精品专区| 欧美午夜精品久久久久久超碰 | 国产精品自在欧美一区| 国产精品视频线看| 色综合视频一区二区三区高清| 亚洲一区在线观看免费观看电影高清 | 免费观看一级特黄欧美大片| 依依成人综合视频| 亚洲国产精品高清| av成人老司机| 午夜精品123| 久久久www免费人成精品| 99riav一区二区三区| 亚洲高清三级视频| 久久精品在线免费观看| 91网站黄www| 久草精品在线观看| 综合亚洲深深色噜噜狠狠网站| 91精品在线免费观看| 成人在线综合网站| 免费一级欧美片在线观看| 欧美国产视频在线| 欧美一区二区三区白人| 99国产精品久久久久久久久久久| 日本成人超碰在线观看| 国产精品久久久久久久久果冻传媒| 欧美人动与zoxxxx乱| 北条麻妃国产九九精品视频| 日韩不卡在线观看日韩不卡视频| 日本一区二区电影| 91精品国产综合久久福利软件| 福利91精品一区二区三区| 国产美女精品人人做人人爽| 亚洲一区二区在线观看视频| 国产婷婷一区二区| 日韩亚洲欧美在线| 在线国产亚洲欧美| 99精品在线免费| 国产成人免费视频精品含羞草妖精| 午夜不卡av在线| 亚洲精品国产一区二区精华液| 国产欧美日韩不卡| 久久香蕉国产线看观看99| 91精品啪在线观看国产60岁| 在线视频你懂得一区| www.激情成人| 成人免费看黄yyy456| 九一久久久久久| 五月开心婷婷久久| 一个色妞综合视频在线观看| 中文字幕一区av| 国产精品婷婷午夜在线观看| 精品国产乱子伦一区| 日韩欧美亚洲一区二区| 91麻豆精品国产91久久久久久久久 | caoporn国产精品| 国产精品一区二区你懂的| 久久66热re国产| 久久99这里只有精品| 久久精品国产久精国产| 日韩av在线发布| 日本中文字幕一区二区视频| 日韩 欧美一区二区三区| 亚洲成av人片一区二区梦乃 | 日韩无一区二区| 欧美一级片在线| 欧美一区二区三区成人| 欧美一区二区国产| 国产精品久久久久久久久搜平片| 欧美国产激情一区二区三区蜜月| 久久精品在线免费观看| 国产精品丝袜一区| 一区二区三区四区高清精品免费观看 | 亚洲国产日韩综合久久精品| 亚洲免费伊人电影| 亚洲成人1区2区| 久久99久久久久| 国产盗摄精品一区二区三区在线| 本田岬高潮一区二区三区| 在线看不卡av| 日韩欧美在线影院| 国产精品热久久久久夜色精品三区| 中文字幕一区二区三区不卡在线| 亚洲一区在线观看免费| 乱一区二区av| 成人黄色一级视频| 欧美日韩你懂的| 久久一夜天堂av一区二区三区| 国产精品人人做人人爽人人添| 亚洲一区av在线| 国产精品一区二区在线播放| 91丝袜国产在线播放| 欧美一区二区三区视频免费播放| 国产三级精品三级| 一区二区日韩av| 国产美女精品在线| 91国偷自产一区二区开放时间 | 在线欧美一区二区| 精品久久久久一区| 一区二区三区在线观看视频| 久久国产三级精品| 欧洲亚洲精品在线| 午夜视频在线观看一区二区| 国产做a爰片久久毛片| 欧美亚洲一区三区| 国产精品麻豆久久久| 久久99热这里只有精品|