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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rcp.c

?? linux下常用的網(wǎng)絡(luò)工具的代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright (c) 1983, 1990, 1992, 1993, 2002 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */#ifndef lintstatic char copyright[] ="@(#) Copyright (c) 1983, 1990, 1992, 1993\n\	The Regents of the University of California.  All rights reserved.\n";#endif /* not lint */#ifndef lintstatic char sccsid[] = "@(#)rcp.c	8.2 (Berkeley) 4/2/94";#endif /* not lint */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include <sys/param.h>#include <sys/stat.h>#ifdef TIME_WITH_SYS_TIME# include <sys/time.h># include <time.h>#else# ifdef HAVE_SYS_TIME_H#  include <sys/time.h># else#  include <time.h># endif#endif#include <sys/socket.h>#include <netinet/in.h>#ifdef HAVE_NETINET_IN_SYSTM_H#include <netinet/in_systm.h>#endif#ifdef HAVE_NETINET_IP_H#include <netinet/ip.h>#endif#include <ctype.h>#include <dirent.h>#include <error.h>#include <errno.h>#include <fcntl.h>#include <netdb.h>#include <pwd.h>#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <string.h>#include <unistd.h>#include <getopt.h>#ifndef HAVE_UTIMES#include <utime.h> /* If we don't have utimes(), use utime(). */#endif#include "extern.h"#ifdef KERBEROS# include <kerberosIV/des.h># include <kerberosIV/krb.h>char	dest_realm_buf[REALM_SZ];char	*dest_realm = NULL;int	use_kerberos = 1;CREDENTIALS 	cred;Key_schedule	schedule;extern	char	*krb_realmofhost ();# ifdef CRYPTint	doencrypt = 0;# define	OPTIONS	"dfKk:prtxV"# else#  define	OPTIONS	"dfKk:prtV"# endif#else# define	OPTIONS "dfprtV"#endif /* KERBEROS  */#if !defined (S_ISTXT) && defined (S_ISVTX)#define S_ISTXT S_ISVTX#endifstatic const char *short_options = OPTIONS;static struct option long_options[] ={  { "recursive", required_argument, 0, 'r' },  { "preserve", no_argument, 0, 'p' },#ifdef KERBEROS  { "kerberos", no_argument, 0, 'K' },  { "realm", required_argument, 0, 'k' },# ifdef CRYPT  { "encrypt", no_argument, 0, 'x' },# endif#endif  { "help", no_argument, 0, 'h' },  { "version", no_argument, 0, 'V' },  /* Server option.  */  { "directory", required_argument, 0, 'd' },  { "from", required_argument, 0, 'f' },  { "to", required_argument, 0, 't' },  { 0, 0, 0, 0 }};struct passwd *pwd;u_short	port;uid_t	userid;int errs, rem;int pflag, iamremote, iamrecursive, targetshouldbedirectory;#define	CMDNEEDS	64char cmd[CMDNEEDS];		/* must hold "rcp -r -p -d\0" */#ifdef KERBEROSint	 kerberos (char **, char *, char *, char *);void	 oldw (const char *, ...);#endifint	 response (void);void	 rsource (char *, struct stat *);void	 sink (int, char *[]);void	 source (int, char *[]);void	 tolocal (int, char *[]);void	 toremote (char *, int, char *[]);void	 usage (void);void	 help (void);char *program_name;intmain (int argc, char *argv[]){  struct servent *sp;  int ch, fflag, tflag;  char *targ;  const char *shell;  program_name = argv[0];  fflag = tflag = 0;  while ((ch = getopt_long (argc, argv, short_options, long_options, 0))	 != EOF)    switch(ch)      {			/* User-visible flags. */      case 'K':#ifdef KERBEROS	use_kerberos = 0;#endif	break;#ifdef	KERBEROS      case 'k':	dest_realm = dest_realm_buf;	strncpy(dest_realm_buf, optarg, REALM_SZ);	break;#ifdef CRYPT      case 'x':	doencrypt = 1;	/* des_set_key(cred.session, schedule); */	break;#endif#endif      case 'p':	pflag = 1;	break;      case 'r':	iamrecursive = 1;	break;	/* Server options. */      case 'd':	targetshouldbedirectory = 1;	break;      case 'f':			/* "from" */	iamremote = 1;	fflag = 1;	break;      case 't':			/* "to" */	iamremote = 1;	tflag = 1;	break;      case 'V':	printf ("rcp (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);	exit (0);	break;      case 'h':	help ();	break;      case '?':      default:	usage ();      }  argc -= optind;  argv += optind;#ifdef KERBEROS  if (use_kerberos)    {#ifdef CRYPT      shell = doencrypt ? "ekshell" : "kshell";#else      shell = "kshell";#endif      if ((sp = getservbyname (shell, "tcp")) == NULL)	{	  use_kerberos = 0;	  oldw ("can't get entry for %s/tcp service", shell);	  sp = getservbyname (shell = "shell", "tcp");	}    } else      sp = getservbyname (shell = "shell", "tcp");#else  sp = getservbyname (shell = "shell", "tcp");#endif  if (sp == NULL)    error (1, 0, "%s/tcp: unknown service", shell);  port = sp->s_port;  if ((pwd = getpwuid (userid = getuid ())) == NULL)    error (1, 0, "unknown user %d", (int)userid);  rem = STDIN_FILENO;		/* XXX */  if (fflag)    {			/* Follow "protocol", send data. */      response ();      setuid (userid);      source (argc, argv);      exit (errs);    }  if (tflag)    {			/* Receive data. */      setuid (userid);      sink (argc, argv);      exit (errs);    }  if (argc < 2)    usage ();  if (argc > 2)    targetshouldbedirectory = 1;  rem = -1;  /* Command to be executed on remote system using "rsh". */#ifdef	KERBEROS  snprintf (cmd, sizeof cmd, "rcp%s%s%s%s", iamrecursive ? " -r" : "",#ifdef CRYPT		  (doencrypt && use_kerberos ? " -x" : ""),#else		  "",#endif		  pflag ? " -p" : "", targetshouldbedirectory ? " -d" : "");#else  snprintf (cmd, sizeof cmd, "rcp%s%s%s",	    iamrecursive ? " -r" : "", pflag ? " -p" : "",	    targetshouldbedirectory ? " -d" : "");#endif  signal (SIGPIPE, lostconn);  targ = colon (argv[argc - 1]);	/* Dest is remote host. */  if (targ)	/* Dest is remote host. */    toremote (targ, argc, argv);  else    {      tolocal (argc, argv);		/* Dest is local host. */      if (targetshouldbedirectory)	verifydir(argv[argc - 1]);    }  exit (errs);}voidtoremote (char *targ, int argc, char *argv[]){  int i, len, tos;  char *bp, *host, *src, *suser, *thost, *tuser;  *targ++ = 0;  if (*targ == 0)    targ = ".";  thost = strchr (argv[argc - 1], '@');  if (thost)    {      /* user@host */      *thost++ = 0;      tuser = argv[argc - 1];      if (*tuser == '\0')	tuser = NULL;      else if (!okname(tuser))	exit (1);    }  else    {      thost = argv[argc - 1];      tuser = NULL;    }  for (i = 0; i < argc - 1; i++)    {      src = colon (argv[i]);      if (src)	{			/* remote to remote */	  *src++ = 0;	  if (*src == 0)	    src = ".";	  host = strchr (argv[i], '@');	  len = strlen (PATH_RSH) + strlen (argv[i]) +	    strlen (src) + (tuser ? strlen (tuser) : 0) +	    strlen (thost) + strlen (targ) + CMDNEEDS + 20;	  if (!(bp = malloc (len)))	    err (1, NULL);	  if (host)	    {	      *host++ = 0;	      suser = argv[i];	      if (*suser == '\0')		suser = pwd->pw_name;	      else if (!okname (suser))		continue;	      snprintf (bp, len,			"%s %s -l %s -n %s %s '%s%s%s:%s'",			PATH_RSH, host, suser, cmd, src,			tuser ? tuser : "", tuser ? "@" : "",			thost, targ);	    }	  else	    snprintf (bp, len,		      "exec %s %s -n %s %s '%s%s%s:%s'",		      PATH_RSH, argv[i], cmd, src,		      tuser ? tuser : "", tuser ? "@" : "",		      thost, targ);	  susystem (bp, userid);	  free (bp);	}      else	{			/* local to remote */	  if (rem == -1)	    {	      len = strlen (targ) + CMDNEEDS + 20;	      if (!(bp = malloc (len)))		err (1, NULL);	      snprintf (bp, len, "%s -t %s", cmd, targ);	      host = thost;#ifdef KERBEROS	      if (use_kerberos)		rem = kerberos (&host, bp, pwd->pw_name,				tuser ? tuser : pwd->pw_name);	      else#endif		rem = rcmd (&host, port, pwd->pw_name,			    tuser ? tuser : pwd->pw_name, bp, 0);	      if (rem < 0)		exit (1);#if defined (IP_TOS) && defined (IPPROTO_IP) && defined (IPTOS_THROUGHPUT)	      tos = IPTOS_THROUGHPUT;	      if (setsockopt (rem, IPPROTO_IP, IP_TOS,			      (char *) &tos, sizeof(int)) < 0)		error (0, errno, "TOS (ignored)");#endif	      if (response () < 0)		exit(1);	      free(bp);	      setuid(userid);	    }	  source(1, argv+i);	}    }}voidtolocal (int argc, char *argv[]){  int i, len, tos;  char *bp, *host, *src, *suser;  for (i = 0; i < argc - 1; i++)    {      if (!(src = colon (argv[i])))	{		/* Local to local. */	  len = strlen (PATH_CP) + strlen (argv[i]) +	    strlen (argv[argc - 1]) + 20;	  if (!(bp = malloc (len)))	    err (1, NULL);	  snprintf (bp, len, "exec %s%s%s %s %s", PATH_CP,		    iamrecursive ? " -r" : "", pflag ? " -p" : "",		    argv[i], argv[argc - 1]);	  if (susystem (bp, userid))	    ++errs;	  free (bp);	  continue;	}      *src++ = 0;      if (*src == 0)	src = ".";      if ((host = strchr(argv[i], '@')) == NULL)	{	  host = argv[i];	  suser = pwd->pw_name;	}      else	{	  *host++ = 0;	  suser = argv[i];	  if (*suser == '\0')	    suser = pwd->pw_name;	  else if (!okname (suser))	    continue;	}      len = strlen (src) + CMDNEEDS + 20;      if ((bp = malloc (len)) == NULL)	err (1, NULL);      snprintf (bp, len, "%s -f %s", cmd, src);      rem =#ifdef KERBEROS	use_kerberos ? kerberos(&host, bp, pwd->pw_name, suser) :#endif	rcmd (&host, port, pwd->pw_name, suser, bp, 0);      free (bp);      if (rem < 0)	{	  ++errs;	  continue;	}      seteuid (userid);#if defined (IP_TOS) && defined (IPPROTO_IP) && defined (IPTOS_THROUGHPUT)      tos = IPTOS_THROUGHPUT;      if (setsockopt (rem, IPPROTO_IP, IP_TOS, (char *) &tos, sizeof (int)) < 0)	error (0, errno, "TOS (ignored)");#endif      sink (1, argv + argc - 1);      seteuid (0);      close (rem);      rem = -1;    }}static intwrite_stat_time (int fd, struct stat *stat){  char buf[4 * sizeof (long) * 3 + 2];  time_t a_sec, m_sec;  long a_usec = 0, m_usec = 0;#ifdef HAVE_STAT_ST_MTIMESPEC  a_sec = stat->st_atimespec.ts_sec;  a_usec = stat->st_atimespec.ts_nsec / 1000;  m_sec = stat->st_mtimespec.ts_sec;  m_usec = stat->st_mtimespec.ts_nsec / 1000;#else  a_sec = stat->st_atime;  m_sec = stat->st_mtime;#ifdef HAVE_STAT_ST_MTIME_USEC  a_usec = stat->st_atime_usec;  m_usec = stat->st_mtime_usec;#endif#endif  snprintf (buf, sizeof(buf), "T%ld %ld %ld %ld\n",	    m_sec, m_usec, a_sec, a_usec);  return write (fd, buf, strlen (buf));}voidsource (int argc, char *argv[]){  struct stat stb;  static BUF buffer;  BUF *bp;  off_t i;  int amt, fd, haderr, indx, result;  char *last, *name, buf[BUFSIZ];  for (indx = 0; indx < argc; ++indx)    {      name = argv[indx];      if ((fd = open (name, O_RDONLY, 0)) < 0)	goto syserr;      if (fstat (fd, &stb))	{	syserr:	  run_err ("%s: %s", name, strerror (errno));	  goto next;	}      switch (stb.st_mode & S_IFMT)	{	case S_IFREG:	  break;	case S_IFDIR:	  if (iamrecursive)	    {	      rsource (name, &stb);	      goto next;	    }	  /* FALLTHROUGH */	default:	  run_err ("%s: not a regular file", name);	  goto next;	}      if ((last = strrchr (name, '/')) == NULL)	last = name;      else	++last;      if (pflag)	{	  write_stat_time (rem, &stb);	  if (response() < 0)	    goto next;	}#define	RCP_MODEMASK	(S_ISUID|S_ISGID|S_ISTXT|S_IRWXU|S_IRWXG|S_IRWXO)      snprintf(buf, sizeof buf,	       (sizeof(stb.st_size) > sizeof(long)		? "C%04o %qd %s\n"		: "C%04o %ld %s\n"),	       stb.st_mode & RCP_MODEMASK, stb.st_size, last);      write (rem, buf, strlen (buf));      if (response () < 0)	goto next;      if ((bp = allocbuf (&buffer, fd, BUFSIZ)) == NULL)	{	next:	  close (fd);	  continue;	}      /* Keep writing after an error so that we stay sync'd up. */      for (haderr = i = 0; i < stb.st_size; i += bp->cnt)	{	  amt = bp->cnt;	  if (i + amt > stb.st_size)	    amt = stb.st_size - i;	  if (!haderr)	    {	      result = read (fd, bp->buf, amt);	      if (result != amt)		haderr = result >= 0 ? EIO : errno;	    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91影院在线免费观看| 男女视频一区二区| 亚洲精品一线二线三线无人区| 欧美影院一区二区| 欧亚一区二区三区| 欧美嫩在线观看| 91精品国产乱| 精品av综合导航| 国产女人18水真多18精品一级做| 欧美激情综合五月色丁香小说| 国产亚洲欧美在线| 中文字幕亚洲电影| 亚洲午夜在线视频| 精彩视频一区二区三区 | 一本一道综合狠狠老| 97se亚洲国产综合自在线不卡| 色综合天天狠狠| 欧美日韩另类国产亚洲欧美一级| 欧美久久一二区| 久久久欧美精品sm网站| 中文字幕在线观看一区| 亚洲国产成人av| 国产黄色91视频| 色婷婷综合久久| 欧美一级艳片视频免费观看| 日本一区二区三区在线不卡| 亚洲一区二区影院| 国产永久精品大片wwwapp | 中文字幕在线一区| 亚洲成人动漫精品| 国产成人精品免费在线| 欧美综合在线视频| 久久精品人人做人人爽人人| 亚洲天堂成人网| 极品瑜伽女神91| 欧美亚日韩国产aⅴ精品中极品| 日韩一级欧美一级| 亚洲女同女同女同女同女同69| 日韩精品五月天| 不卡的av中国片| 欧美一级一区二区| 亚洲黄色录像片| 国产v综合v亚洲欧| 欧美刺激脚交jootjob| 亚洲欧美一区二区久久| 久久精品国产999大香线蕉| 色婷婷综合久久久中文一区二区| 欧美精品一区二区蜜臀亚洲| 丝袜美腿高跟呻吟高潮一区| 91视频一区二区| 国产日产欧美一区| 日韩黄色在线观看| 欧美性高清videossexo| 中文字幕日韩一区二区| 国内不卡的二区三区中文字幕| 色94色欧美sute亚洲线路一久| 久久女同精品一区二区| 免费人成在线不卡| 欧美曰成人黄网| 亚洲欧美电影一区二区| 成人国产精品免费观看动漫| 国产夜色精品一区二区av| 日本va欧美va欧美va精品| 欧美影院午夜播放| 亚洲午夜精品在线| av激情成人网| 亚洲欧美一区二区三区国产精品| 成人综合在线视频| 欧美国产精品一区| 成人午夜激情视频| 国产精品久久一卡二卡| 成人免费视频caoporn| 国产欧美一区二区在线观看| 国产不卡视频一区二区三区| 久久伊99综合婷婷久久伊| 国产又黄又大久久| 国产喷白浆一区二区三区| 国产aⅴ精品一区二区三区色成熟| 精品国产乱子伦一区| 国内精品写真在线观看| 日韩视频免费观看高清在线视频| 天堂久久一区二区三区| 日韩色视频在线观看| 蜜臀久久久99精品久久久久久| 91丨porny丨蝌蚪视频| 一区二区三区四区视频精品免费 | 亚洲大型综合色站| 欧美日韩成人综合| 蜜臀久久久久久久| 国产校园另类小说区| 成人aaaa免费全部观看| 亚洲一区二区在线免费看| 欧美美女黄视频| 激情亚洲综合在线| 国产精品情趣视频| 在线免费观看日韩欧美| 久久黄色级2电影| 国产欧美一区二区在线| 色天天综合色天天久久| 毛片一区二区三区| 国产精品久久久久婷婷二区次| 色综合久久天天| 激情丁香综合五月| 一区二区三区加勒比av| 欧美videos中文字幕| 91欧美一区二区| 精品亚洲porn| 亚洲乱码国产乱码精品精98午夜 | 天天av天天翘天天综合网| 精品国产1区2区3区| 一本色道久久综合亚洲91| 美女任你摸久久| 亚洲人成影院在线观看| 精品黑人一区二区三区久久| 91亚洲精品久久久蜜桃网站| 久久se这里有精品| 亚洲激情一二三区| 久久精品一区二区| 7777精品伊人久久久大香线蕉 | 亚洲精品在线观看视频| 色婷婷综合久久| 成人午夜av电影| 毛片不卡一区二区| 亚洲小说欧美激情另类| 国产精品欧美一级免费| 日韩美一区二区三区| 欧美自拍丝袜亚洲| 不卡高清视频专区| 国产综合色精品一区二区三区| 亚洲一区二区欧美激情| 国产精品高潮呻吟久久| 久久这里只精品最新地址| 在线播放日韩导航| 日本韩国精品在线| av在线播放不卡| 国产成人精品午夜视频免费| 久久99在线观看| 男男gaygay亚洲| 五月婷婷综合网| 亚洲国产精品自拍| 亚洲综合成人在线视频| 最新欧美精品一区二区三区| 国产目拍亚洲精品99久久精品 | av在线播放不卡| 国产一本一道久久香蕉| 精品一区二区三区在线播放| 蜜桃久久精品一区二区| 日韩国产欧美在线播放| 天堂一区二区在线| 日韩电影在线看| 蜜臀a∨国产成人精品| 久久精品国产77777蜜臀| 蜜桃视频在线观看一区二区| 蜜桃久久久久久| 精品无人码麻豆乱码1区2区| 狠狠色狠狠色综合日日91app| 久久精品国产亚洲高清剧情介绍| 久久精品99久久久| 国产在线精品免费av| 国产精品中文字幕日韩精品| 国产激情一区二区三区桃花岛亚洲| 韩日欧美一区二区三区| 国产精品自拍一区| 成人一区二区三区视频在线观看| 成人免费视频免费观看| 色吊一区二区三区 | 激情六月婷婷综合| 国产精品影视在线观看| 成人sese在线| 欧美亚洲精品一区| 欧美不卡在线视频| 国产精品午夜在线| 一区二区三区四区激情| 日韩精品成人一区二区在线| 狠狠v欧美v日韩v亚洲ⅴ| 成人免费黄色大片| 欧美日韩一区三区| 精品国产一区二区三区四区四| 国产精品人成在线观看免费| 亚洲激情五月婷婷| 国内一区二区在线| 色综合久久66| 日韩欧美国产小视频| 国产精品第四页| 日本vs亚洲vs韩国一区三区| 成人国产精品免费观看动漫 | 国产美女一区二区三区| 99在线精品观看| 欧美电视剧在线看免费| 1024国产精品| 精品一区二区三区在线播放 | 亚洲乱码日产精品bd| 激情丁香综合五月| 91福利精品视频| 日本一二三四高清不卡| 三级欧美韩日大片在线看| eeuss鲁片一区二区三区在线观看| 6080午夜不卡| 亚洲欧美日韩一区| 国产真实乱偷精品视频免|