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

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

?? ln.c

?? 《Linux應用開發技術詳解》附書光盤中的例程。
?? C
?? 第 1 頁 / 共 2 頁
字號:
      if (unlink (dest) && errno != ENOENT)
	{
	  error (0, errno, _("cannot remove %s"), quote (dest));
	  return 1;
	}
    }
  else if (errno != ENOENT)
    {
      error (0, errno, _("accessing %s"), quote (dest));
      return 1;
    }

  if (verbose)
    {
      printf ((symbolic_link
	       ? _("create symbolic link %s to %s")
	       : _("create hard link %s to %s")),
	      quote_n (0, dest), quote_n (1, source));
      if (backup_succeeded)
	printf (_(" (backup: %s)"), quote (dest_backup));
      putchar ('\n');
    }

  if ((*linkfunc) (source, dest) == 0)
    {
      return 0;
    }

  error (0, errno,
	 (symbolic_link
	  ? _("creating symbolic link %s to %s")
	  : _("creating hard link %s to %s")),
	 quote_n (0, dest), quote_n (1, source));

  if (dest_backup)
    {
      if (rename (dest_backup, dest))
	error (0, errno, _("cannot un-backup %s"), quote (dest));
    }
  return 1;
}

void
usage (int status)
{
  if (status != 0)
    fprintf (stderr, _("Try `%s --help' for more information.\n"),
	     program_name);
  else
    {
      printf (_("\
Usage: %s [OPTION]... TARGET [LINK_NAME]\n\
  or:  %s [OPTION]... TARGET... DIRECTORY\n\
  or:  %s [OPTION]... --target-directory=DIRECTORY TARGET...\n\
"),
	      program_name, program_name, program_name);
      fputs (_("\
Create a link to the specified TARGET with optional LINK_NAME.\n\
If LINK_NAME is omitted, a link with the same basename as the TARGET is\n\
created in the current directory.  When using the second form with more\n\
than one TARGET, the last argument must be a directory;  create links\n\
in DIRECTORY to each TARGET.  Create hard links by default, symbolic\n\
links with --symbolic.  When creating hard links, each TARGET must exist.\n\
\n\
"), stdout);
      fputs (_("\
Mandatory arguments to long options are mandatory for short options too.\n\
"), stdout);
      fputs (_("\
      --backup[=CONTROL]      make a backup of each existing destination file\n\
  -b                          like --backup but does not accept an argument\n\
  -d, -F, --directory         hard link directories (super-user only)\n\
  -f, --force                 remove existing destination files\n\
"), stdout);
      fputs (_("\
  -n, --no-dereference        treat destination that is a symlink to a\n\
                                directory as if it were a normal file\n\
  -i, --interactive           prompt whether to remove destinations\n\
  -s, --symbolic              make symbolic links instead of hard links\n\
"), stdout);
      fputs (_("\
  -S, --suffix=SUFFIX         override the usual backup suffix\n\
      --target-directory=DIRECTORY  specify the DIRECTORY in which to create\n\
                                the links\n\
  -v, --verbose               print name of each file before linking\n\
"), stdout);
      fputs (HELP_OPTION_DESCRIPTION, stdout);
      fputs (VERSION_OPTION_DESCRIPTION, stdout);
      fputs (_("\
\n\
The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.\n\
The version control method may be selected via the --backup option or through\n\
the VERSION_CONTROL environment variable.  Here are the values:\n\
\n\
"), stdout);
      fputs (_("\
  none, off       never make backups (even if --backup is given)\n\
  numbered, t     make numbered backups\n\
  existing, nil   numbered if numbered backups exist, simple otherwise\n\
  simple, never   always make simple backups\n\
"), stdout);
      printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT);
    }
  exit (status);
}

int
main (int argc, char **argv)
{
  int c;
  int errors;
  int make_backups = 0;
  char *backup_suffix_string;
  char *version_control_string = NULL;
  char *target_directory = NULL;
  int target_directory_specified;
  unsigned int n_files;
  char **file;
  int dest_is_dir;

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

  atexit (close_stdout);

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

  symbolic_link = remove_existing_files = interactive = verbose
    = hard_dir_link = 0;
  errors = 0;

  while ((c = getopt_long (argc, argv, "bdfinsvFS:V:", long_options, NULL))
	 != -1)
    {
      switch (c)
	{
	case 0:			/* Long-named option. */
 	  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 'd':
	case 'F':
	  hard_dir_link = 1;
	  break;
	case 'f':
	  remove_existing_files = 1;
	  interactive = 0;
	  break;
	case 'i':
	  remove_existing_files = 0;
	  interactive = 1;
	  break;
	case 'n':
	  dereference_dest_dir_symlinks = 0;
	  break;
	case 's':
#ifdef S_ISLNK
	  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 'v':
	  verbose = 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);
	  break;
	}
    }

  n_files = argc - optind;
  file = argv + optind;

  if (n_files == 0)
    {
      error (0, 0, _("missing file argument"));
      usage (EXIT_FAILURE);
    }

  target_directory_specified = (target_directory != NULL);
  if (!target_directory)
    target_directory = file[n_files - 1];

  /* If target directory is not specified, and there's only one
     file argument, then pretend `.' was given as the second argument.  */
  if (!target_directory_specified && n_files == 1)
    {
      static char *dummy[2];
      dummy[0] = file[0];
      dummy[1] = ".";
      file = dummy;
      n_files = 2;
      dest_is_dir = 1;
    }
  else
    {
      dest_is_dir = isdir (target_directory);
    }

  if (symbolic_link)
    linkfunc = symlink;
  else
    linkfunc = link;

  if (target_directory_specified && !dest_is_dir)
    {
      error (0, 0, _("%s: specified target directory is not a directory"),
	     quote (target_directory));
      usage (EXIT_FAILURE);
    }

  if (backup_suffix_string)
    simple_backup_suffix = xstrdup (backup_suffix_string);

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

  if (target_directory_specified || n_files > 2)
    {
      unsigned int i;
      unsigned int last_file_idx = (target_directory_specified
				    ? n_files - 1
				    : n_files - 2);

      if (!target_directory_specified && !dest_is_dir)
	error (EXIT_FAILURE, 0,
	   _("when making multiple links, last argument must be a directory"));
      for (i = 0; i <= last_file_idx; ++i)
	errors += do_link (file[i], target_directory);
    }
  else
    {
      struct stat source_stats;
      const char *source;
      char *dest;
      char *new_dest;

      source = file[0];
      dest = file[1];

      /* When the destination is specified with a trailing slash and the
	 source exists but is not a directory, convert the user's command
	 `ln source dest/' to `ln source dest/basename(source)'.  */

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

      errors = do_link (source, new_dest);
    }

  exit (errors != 0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲综合另类| 亚洲一区二区3| 91精品国产一区二区三区香蕉| 精油按摩中文字幕久久| 五月婷婷久久综合| 亚洲在线观看免费视频| 一区二区三区四区不卡在线| 国产欧美日韩在线观看| 久久久国产精品午夜一区ai换脸| 久久亚洲一区二区三区四区| 精品久久久久久亚洲综合网 | 欧美肥妇free| 欧美一区二区人人喊爽| 亚洲精品一区二区三区香蕉| 亚洲精品一区二区三区99| 久久久久久久久蜜桃| 国产精品久久久久久久久免费相片| 中文av字幕一区| 亚洲va国产va欧美va观看| 亚洲永久精品大片| 91精品国产品国语在线不卡| 成人一区二区三区在线观看| 韩国女主播成人在线观看| 欧美一区二区三区在| 在线综合视频播放| 欧美浪妇xxxx高跟鞋交| 欧亚一区二区三区| 欧美亚洲高清一区| 欧美亚州韩日在线看免费版国语版| 91丝袜美腿高跟国产极品老师| 国产成人午夜99999| 另类综合日韩欧美亚洲| 国产一区二区伦理片| 蜜桃av一区二区三区电影| 国产一区福利在线| 成人伦理片在线| 色先锋资源久久综合| 欧美日韩一区二区在线视频| 欧美色国产精品| 久久免费看少妇高潮| 亚洲免费观看高清完整版在线观看 | 在线观看欧美精品| 精品国精品国产尤物美女| 亚洲欧洲日产国码二区| 国产精品一区二区三区99| 91麻豆精品国产91久久久使用方法 | 成人av网站在线| 91电影在线观看| 欧美日韩日本视频| 2023国产一二三区日本精品2022| 2021中文字幕一区亚洲| 亚洲免费av高清| 国产在线播放一区| 在线看国产一区| 精品福利在线导航| 亚洲一区二区三区三| 国产九色sp调教91| 日韩午夜av电影| 亚洲成人免费在线| 在线亚洲一区观看| 久久久亚洲国产美女国产盗摄| 欧美激情一区二区三区全黄 | 亚洲视频1区2区| 国产精品亚洲一区二区三区在线| aaa欧美大片| 中文字幕第一区| 成人国产精品免费| 精品国精品自拍自在线| 另类专区欧美蜜桃臀第一页| 欧美日韩国产天堂| 亚洲国产欧美在线| 911精品国产一区二区在线| 一区二区三区在线观看网站| 成人久久久精品乱码一区二区三区| 日韩欧美第一区| 成人丝袜18视频在线观看| 国产午夜精品一区二区三区四区| 激情欧美一区二区三区在线观看| 9191精品国产综合久久久久久| 五月综合激情婷婷六月色窝| 欧美精品三级在线观看| 美日韩一区二区三区| 精品日韩欧美在线| 国产自产v一区二区三区c| 91精品国产91热久久久做人人| 亚洲国产日韩一区二区| 欧美亚洲动漫制服丝袜| 日日摸夜夜添夜夜添精品视频| 欧美无砖专区一中文字| 丝袜国产日韩另类美女| 欧美电视剧免费全集观看| 国产精品理论片| 欧美专区日韩专区| 人人爽香蕉精品| 久久精品亚洲乱码伦伦中文| 国产精品亚洲综合一区在线观看| 国产免费观看久久| 不卡av免费在线观看| 亚洲综合色视频| 国产亚洲污的网站| 国产91丝袜在线播放| 一区二区三区中文字幕| 精品视频色一区| 国产精品一二二区| 免费看欧美美女黄的网站| 中文字幕免费不卡| 欧美猛男超大videosgay| 久久国产精品露脸对白| 亚洲精选视频免费看| 久久嫩草精品久久久精品 | 国产精品66部| 免费在线成人网| 亚洲一区精品在线| 日韩免费看的电影| 欧美色图片你懂的| 国产精品一区二区三区四区| 首页国产丝袜综合| 亚洲精品videosex极品| 久久人人爽爽爽人久久久| 日韩欧美你懂的| 日韩免费观看高清完整版| 欧美高清hd18日本| 成人中文字幕在线| 大白屁股一区二区视频| 国产一区二区三区黄视频 | 欧美午夜精品久久久久久孕妇| 成人app网站| 97国产一区二区| 在线亚洲一区二区| 97久久人人超碰| 欧美性猛交xxxx乱大交退制版| 一本一道久久a久久精品综合蜜臀| 国产欧美日韩三区| 亚洲国产精品av| 亚洲欧美偷拍卡通变态| 中文字幕中文字幕一区| 亚洲国产一区二区三区 | 国产精品入口麻豆原神| 欧美精品一区二区三区蜜桃| 精品国产91乱码一区二区三区| 欧美日本一区二区三区| 日韩精品一区二区在线观看| 91极品视觉盛宴| 日韩精品专区在线影院观看| 久久精品亚洲国产奇米99| 国产免费久久精品| 六月婷婷色综合| 精品婷婷伊人一区三区三| 26uuu亚洲婷婷狠狠天堂| 自拍偷拍欧美精品| 国产在线精品视频| 欧美日韩中字一区| 亚洲免费在线播放| 国产成人精品免费| 欧美午夜片在线看| 国产精品久久99| 亚洲国产精品一区二区尤物区| 国产成人在线视频免费播放| 日本乱码高清不卡字幕| 国产午夜精品理论片a级大结局| 日韩专区在线视频| 欧美日韩成人在线| 香蕉av福利精品导航| 欧美日韩综合在线免费观看| 国产精品不卡在线观看| 免费高清在线一区| 精品国内片67194| 精品亚洲成av人在线观看| 欧美一区二区三区思思人| 亚洲一区二区三区四区中文字幕| 高清在线观看日韩| 18成人在线视频| 欧美性三三影院| 日产精品久久久久久久性色| 欧美一区二区在线不卡| 免播放器亚洲一区| 国产欧美一区二区精品婷婷| 国产乱人伦偷精品视频免下载| 国产三级精品三级在线专区| 国产成人超碰人人澡人人澡| 中文字幕av一区 二区| 色婷婷av一区二区三区gif| 亚洲影院免费观看| 日韩色视频在线观看| 成人午夜短视频| 国产精品福利影院| 91精品国产高清一区二区三区 | 国产精品嫩草99a| 91一区二区三区在线播放| 日韩精品免费视频人成| 欧美午夜电影在线播放| 国产成人免费在线视频| 亚洲午夜久久久久中文字幕久| 91精品国产高清一区二区三区| 国产99久久久国产精品免费看 | 色又黄又爽网站www久久| 欧美日韩极品在线观看一区| 久久国内精品自在自线400部| 亚洲欧美一区二区久久| 99久久免费精品|