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

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

?? cp.c

?? 《Linux應用開發技術詳解》附書光盤中的例程。
?? C
?? 第 1 頁 / 共 3 頁
字號:
	 this ensures that the command `cp non-directory file/' will now
	 fail rather than performing the copy.  COPY diagnoses the case of
	 `cp directory non-directory'.  */

      else if (dest[strlen (dest) - 1] == '/'
	  && lstat (source, &source_stats) == 0
	  && !S_ISDIR (source_stats.st_mode))
	{
	  char *source_base;

	  ASSIGN_BASENAME_STRDUPA (source_base, source);
	  new_dest = (char *) alloca (strlen (dest)
				      + strlen (source_base) + 1);
	  stpcpy (stpcpy (new_dest, dest), source_base);
	}
      else
	{
	  new_dest = (char *) dest;
	}

      return copy (source, new_dest, new_dst, x, &unused, NULL);
    }

  /* unreachable */
}

static void
cp_option_init (struct cp_options *x)
{
  x->copy_as_regular = 1;
  x->dereference = DEREF_UNDEFINED;
  x->unlink_dest_before_opening = 0;
  x->unlink_dest_after_failed_open = 0;
  x->hard_link = 0;
  x->interactive = I_UNSPECIFIED;
  x->myeuid = geteuid ();
  x->move_mode = 0;
  x->one_file_system = 0;

  x->preserve_ownership = 0;
  x->preserve_links = 0;
  x->preserve_mode = 0;
  x->preserve_timestamps = 0;

  x->require_preserve = 0;
  x->recursive = 0;
  x->sparse_mode = SPARSE_AUTO;
  x->symbolic_link = 0;
  x->set_mode = 0;
  x->mode = 0;

  /* Not used.  */
  x->stdin_tty = 0;

  x->update = 0;
  x->verbose = 0;
  x->dest_info = NULL;
  x->src_info = NULL;
}

/* Given a string, ARG, containing a comma-separated list of arguments
   to the --preserve option, set the appropriate fields of X to ON_OFF.  */
static void
decode_preserve_arg (char const *arg, struct cp_options *x, int on_off)
{
  enum File_attribute
    {
      PRESERVE_MODE,
      PRESERVE_TIMESTAMPS,
      PRESERVE_OWNERSHIP,
      PRESERVE_LINK,
      PRESERVE_ALL
    };
  static enum File_attribute const preserve_vals[] =
    {
      PRESERVE_MODE, PRESERVE_TIMESTAMPS,
      PRESERVE_OWNERSHIP, PRESERVE_LINK, PRESERVE_ALL
    };

  /* Valid arguments to the `--reply' option. */
  static char const* const preserve_args[] =
    {
      "mode", "timestamps",
      "ownership", "links", "all", 0
    };

  char *arg_writable = xstrdup (arg);
  char *s = arg_writable;
  do
    {
      /* find next comma */
      char *comma = strchr (s, ',');
      enum File_attribute val;

      /* put a NUL in its place */
      if (comma)
	*comma++ = 0;

      /* process S.  */
      val = XARGMATCH ("--preserve", s, preserve_args, preserve_vals);
      switch (val)
	{
	case PRESERVE_MODE:
	  x->preserve_mode = on_off;
	  break;

	case PRESERVE_TIMESTAMPS:
	  x->preserve_timestamps = on_off;
	  break;

	case PRESERVE_OWNERSHIP:
	  x->preserve_ownership = on_off;
	  break;

	case PRESERVE_LINK:
	  x->preserve_links = on_off;
	  break;

	case PRESERVE_ALL:
	  x->preserve_mode = on_off;
	  x->preserve_timestamps = on_off;
	  x->preserve_ownership = on_off;
	  x->preserve_links = on_off;
	  break;

	default:
	  abort ();
	}
      s = comma;
    }
  while (s);

  free (arg_writable);
}

int
main (int argc, char **argv)
{
  int c;
  int make_backups = 0;
  char *backup_suffix_string;
  char *version_control_string = NULL;
  struct cp_options x;
  int copy_contents = 0;
  char *target_directory = NULL;

  program_name = argv[0];
  setlocale (LC_ALL, "");
  bindtextdomain (PACKAGE, LOCALEDIR);
  textdomain (PACKAGE);

  atexit (close_stdout);

  cp_option_init (&x);

  /* FIXME: consider not calling getenv for SIMPLE_BACKUP_SUFFIX unless
     we'll actually use backup_suffix_string.  */
  backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");

  while ((c = getopt_long (argc, argv, "abdfHilLprsuvxPRS:V:", long_opts, NULL))
	 != -1)
    {
      switch (c)
	{
	case 0:
	  break;

	case SPARSE_OPTION:
	  x.sparse_mode = XARGMATCH ("--sparse", optarg,
				     sparse_type_string, sparse_type);
	  break;

	case 'a':		/* Like -dpPR. */
	  x.dereference = DEREF_NEVER;
	  x.preserve_links = 1;
	  x.preserve_ownership = 1;
	  x.preserve_mode = 1;
	  x.preserve_timestamps = 1;
	  x.require_preserve = 1;
	  x.recursive = 1;
	  break;

	case 'V':  /* FIXME: this is deprecated.  Remove it in 2001.  */
	  error (0, 0,
		 _("warning: --version-control (-V) is obsolete;  support for\
 it\nwill be removed in some future release.  Use --backup=%s instead."
		   ), optarg);
	  /* Fall through.  */

	case 'b':
	  make_backups = 1;
	  if (optarg)
	    version_control_string = optarg;
	  break;

	case COPY_CONTENTS_OPTION:
	  copy_contents = 1;
	  break;

	case 'd':
	  x.preserve_links = 1;
	  x.dereference = DEREF_NEVER;
	  break;

	case 'f':
	  x.interactive = 0;
	  x.unlink_dest_after_failed_open = 1;
	  break;

	case 'H':
	  x.dereference = DEREF_COMMAND_LINE_ARGUMENTS;
	  break;

	case 'i':
	  x.interactive = I_ASK_USER;
	  break;

	case 'l':
	  x.hard_link = 1;
	  break;

	case 'L':
	  x.dereference = DEREF_ALWAYS;
	  break;

	case 'P':
	  x.dereference = DEREF_NEVER;
	  break;

	case NO_PRESERVE_ATTRIBUTES_OPTION:
	  decode_preserve_arg (optarg, &x, 0);
	  break;

	case PRESERVE_ATTRIBUTES_OPTION:
	  if (optarg == NULL)
	    {
	      /* Fall through to the case for `p' below.  */
	    }
	  else
	    {
	      decode_preserve_arg (optarg, &x, 1);
	      x.require_preserve = 1;
	      break;
	    }

	case 'p':
	  x.preserve_ownership = 1;
	  x.preserve_mode = 1;
	  x.preserve_timestamps = 1;
	  x.require_preserve = 1;
	  break;

	case PARENTS_OPTION:
	  flag_path = 1;
	  break;

	case 'r':
	case 'R':
	  x.recursive = 1;
	  break;

	case REPLY_OPTION:
	  x.interactive = XARGMATCH ("--reply", optarg,
				     reply_args, reply_vals);
	  break;

	case UNLINK_DEST_BEFORE_OPENING:
	  x.unlink_dest_before_opening = 1;
	  break;

	case STRIP_TRAILING_SLASHES_OPTION:
	  remove_trailing_slashes = 1;
	  break;

	case 's':
#ifdef S_ISLNK
	  x.symbolic_link = 1;
#else
	  error (EXIT_FAILURE, 0,
		 _("symbolic links are not supported on this system"));
#endif
	  break;

	case TARGET_DIRECTORY_OPTION:
	  target_directory = optarg;
	  break;

	case 'u':
	  x.update = 1;
	  break;

	case 'v':
	  x.verbose = 1;
	  break;

	case 'x':
	  x.one_file_system = 1;
	  break;

	case 'S':
	  make_backups = 1;
	  backup_suffix_string = optarg;
	  break;

	case_GETOPT_HELP_CHAR;

	case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);

	default:
	  usage (EXIT_FAILURE);
	}
    }

  if (x.hard_link && x.symbolic_link)
    {
      error (0, 0, _("cannot make both hard and symbolic links"));
      usage (EXIT_FAILURE);
    }

  if (backup_suffix_string)
    simple_backup_suffix = xstrdup (backup_suffix_string);

  x.backup_type = (make_backups
		   ? xget_version (_("backup type"),
				   version_control_string)
		   : none);

  if (x.dereference == DEREF_UNDEFINED)
    {
      if (x.recursive)
	/* This is compatible with FreeBSD.  */
	x.dereference = DEREF_NEVER;
      else
	x.dereference = DEREF_ALWAYS;
    }

  /* The key difference between -d (--no-dereference) and not is the version
     of `stat' to call.  */

  if (x.dereference == DEREF_NEVER)
    x.xstat = lstat;
  else
    {
      /* For DEREF_COMMAND_LINE_ARGUMENTS, x.xstat must be stat for
	 each command line argument, but must later be `lstat' for
	 any symlinks that are found via recursive traversal.  */
      x.xstat = stat;
    }

  if (x.recursive)
    x.copy_as_regular = copy_contents;

  /* If --force (-f) was specified and we're in link-creation mode,
     first remove any existing destination file.  */
  if (x.unlink_dest_after_failed_open && (x.hard_link || x.symbolic_link))
    x.unlink_dest_before_opening = 1;

  /* Allocate space for remembering copied and created files.  */

  hash_init ();

  exit_status |= do_copy (argc - optind, argv + optind, target_directory, &x);

  forget_all ();

  exit (exit_status);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品对白一区国产伦| 欧美日韩久久久| 黄网站免费久久| 奇米亚洲午夜久久精品| 日本欧美一区二区在线观看| 午夜精品久久久久久久久久久| 性久久久久久久久久久久| 一区二区三区日韩欧美| 亚洲一区在线免费观看| 天天操天天干天天综合网| 污片在线观看一区二区| 日韩精品视频网站| 日日噜噜夜夜狠狠视频欧美人| 美女一区二区三区| 亚洲风情在线资源站| 五月天欧美精品| 蜜桃av一区二区三区| 精品一区二区三区免费毛片爱| 国产一区二区毛片| 成人网在线播放| 91成人网在线| 欧美日本一区二区三区四区| 日韩欧美国产系列| 精品对白一区国产伦| 亚洲欧洲一区二区三区| 亚洲午夜一二三区视频| 蜜桃视频在线观看一区二区| 国产美女视频一区| 成人影视亚洲图片在线| 在线观看中文字幕不卡| 日韩欧美成人午夜| 亚洲欧洲日韩一区二区三区| 日韩国产在线观看| 国产精品2024| 欧美人xxxx| 国产精品免费视频网站| 日韩专区一卡二卡| 成人av资源在线| 日韩精品一区二区三区在线观看 | 国产精品婷婷午夜在线观看| 亚洲欧美日韩国产手机在线| 青青青伊人色综合久久| av在线这里只有精品| 日韩欧美一区二区在线视频| 亚洲三级在线观看| 精久久久久久久久久久| 在线免费观看不卡av| 国产女同互慰高潮91漫画| 亚洲午夜国产一区99re久久| 成人小视频免费观看| 欧美一级欧美一级在线播放| 亚洲视频一二区| 国产精品白丝av| 欧美一级免费大片| 亚洲尤物视频在线| av在线综合网| 日韩毛片精品高清免费| 久久爱www久久做| 欧美日韩中文字幕精品| 一区二区三区在线免费播放| 高清免费成人av| 久久精品一区二区三区不卡| 久久精品99久久久| 欧美一区二区视频在线观看| 婷婷六月综合网| 欧美三级中文字| 亚洲大片免费看| 欧美日韩国产欧美日美国产精品| 国产精品久久久久aaaa樱花| 高清免费成人av| 国产精品乱人伦| 成人午夜看片网址| 欧美国产97人人爽人人喊| 国产精品一二二区| 欧美经典一区二区| 福利电影一区二区| 中文字幕+乱码+中文字幕一区| 成人午夜激情片| 亚洲欧洲制服丝袜| 在线亚洲免费视频| 亚洲国产成人porn| 欧美一区二区三区视频免费播放| 日韩精品电影在线| 日韩一区二区三区观看| 久久成人久久爱| 2021国产精品久久精品| 国产成人综合网| 国产精品国产自产拍高清av| 99视频热这里只有精品免费| 亚洲成a人v欧美综合天堂下载 | 久久精品人人爽人人爽| 国产sm精品调教视频网站| 国产日产亚洲精品系列| www.日韩大片| 亚洲成人在线网站| 亚洲精品一区二区三区精华液 | 亚洲男人天堂av| 欧美亚洲国产一区二区三区va| 亚洲高清免费一级二级三级| 日韩女同互慰一区二区| 懂色av一区二区三区免费看| 亚洲精品视频在线观看网站| 欧美一区二区播放| 国产成人午夜高潮毛片| 亚洲黄色尤物视频| 欧美大胆一级视频| 成人国产视频在线观看 | 欧美日韩一区二区三区在线| 久久国产视频网| 中文字幕中文在线不卡住| 欧美日韩情趣电影| 国产精品亚洲视频| 亚洲国产精品自拍| 中文字幕欧美日韩一区| 欧美乱妇一区二区三区不卡视频| 国产美女娇喘av呻吟久久| 国产精品国产三级国产a| 777久久久精品| 97久久久精品综合88久久| 免费成人你懂的| 亚洲美女偷拍久久| 国产日韩综合av| 日韩天堂在线观看| 色哟哟一区二区| 成人性视频网站| 蜜乳av一区二区三区| 亚洲自拍另类综合| 亚洲国产电影在线观看| 日韩午夜精品电影| 欧美日韩三级一区| 91官网在线免费观看| 国产自产高清不卡| 丝袜诱惑亚洲看片| 亚洲精品视频免费观看| 国产精品网站在线| 久久免费电影网| 日韩美一区二区三区| 欧美人与性动xxxx| 欧美中文字幕亚洲一区二区va在线| 国产精品一线二线三线| 欧美aa在线视频| 亚州成人在线电影| 亚洲动漫第一页| 一区二区三区四区精品在线视频| 久久久亚洲欧洲日产国码αv| 91精品国产综合久久久久久漫画 | 欧美久久久久久久久中文字幕| 成人黄色综合网站| 国产成人免费视频网站| 国产一区二区视频在线播放| 蜜桃视频一区二区三区在线观看| 日韩精品亚洲一区二区三区免费| 亚洲国产一区二区三区| 亚洲国产日韩精品| 亚洲成人激情av| 日韩主播视频在线| 五月天一区二区| 麻豆91小视频| 久久er99精品| 国产精品资源在线| 粉嫩蜜臀av国产精品网站| 成人激情av网| 欧美在线综合视频| 欧美精品在线观看一区二区| 91精品国产手机| 欧美精品一区二区三区蜜桃视频 | 亚洲视频你懂的| 亚洲激情中文1区| 天天操天天色综合| 久久99九九99精品| 成人a区在线观看| 日本精品一级二级| 7777精品伊人久久久大香线蕉的| 91精品国产综合久久蜜臀| 日韩精品一区二区在线| 中文字幕精品综合| 日日噜噜夜夜狠狠视频欧美人| 视频一区二区三区入口| 免费成人在线影院| 国产一区二区看久久| 色狠狠av一区二区三区| 欧美一级黄色片| 久久久美女毛片| 亚洲一区二区三区激情| 久99久精品视频免费观看| 成人一二三区视频| 欧美日韩视频不卡| 日本一区二区在线不卡| 亚洲一区二区四区蜜桃| 国产精品一区二区x88av| 欧美在线观看视频在线| 精品日韩一区二区三区 | 欧洲精品一区二区| 精品国产1区2区3区| √…a在线天堂一区| 免费观看成人鲁鲁鲁鲁鲁视频| av激情综合网| 久久青草欧美一区二区三区| 午夜a成v人精品| 91免费视频观看|