⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 other.c

📁 操作系统源代码
💻 C
字号:
/* other.c by Michael Temari 06/21/92 * * ftp          An ftp client program for use with TNET. * * Author:      Michael Temari, <temari@ix.netcom.com> */#include <sys/types.h>#include <stdio.h>#include <ctype.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <termios.h>#include "ftp.h"#include "other.h"void FTPinit(){   linkopen = 0;   loggedin = 0;   type = TYPE_A;   format = 0;   mode = 0;   structure = 0;   passive = 0;   atty = isatty(0);}int DOpass(){int s;struct termios oldtty, newtty;char *pass;char password[64];   if(!linkopen) {	printf("You must \"OPEN\" a connection first.\n");	return(0);   }   pass = cmdargv[1];   if(cmdargc < 2) {	tcgetattr(fileno(stdout), &oldtty);	newtty = oldtty;	newtty.c_lflag &= ~ECHO;	tcsetattr(fileno(stdout), TCSANOW, &newtty);	readline("Password: ", password, sizeof(password));	tcsetattr(fileno(stdout), TCSANOW, &oldtty);	printf("\n");	pass = password;   }   s = DOcommand("PASS", pass);   if(s == 230)	loggedin = 1;   return(s);}int DOuser(){char *user;int s;char username[64];   if(!linkopen) {	printf("You must \"OPEN\" a connection first.\n");	return(0);   }   loggedin = 0;   user = cmdargv[1];   if(cmdargc < 2) {	readline("Username: ", username, sizeof(username));	user = username;   }   s = DOcommand("USER", user);   if(atty && s == 331) {   	cmdargv[0] = "password";   	cmdargc = 1;	return(DOpass());   }   if(s == 230)	loggedin = 1;   return(s);}int DOnoop(){   if(DOcmdcheck())	return(0);   return(DOcommand("NOOP", ""));}int DOpassive(){   passive = 1 - passive;   printf("Passive mode is now %s\n", (passive ? "ON" : "OFF"));   return(0);}int DOsyst(){   if(DOcmdcheck())	return(0);   return(DOcommand("SYST", ""));}int DOremotehelp(){   if(!linkopen) {	printf("You must \"OPEN\" a connection first.\n");	return(0);   }   return(DOcommand("HELP", ""));}int DOquote(){int i;static char args[512];   args[0] = '\0';   for(i = 2; i < cmdargc; i++) {	if(i != 2)		strcat(args, " ");	strcat(args, cmdargv[i]);   }   return(DOcommand(cmdargv[1], args));}int DOsite(){int i;static char args[512];   args[0] = '\0';   for(i = 1; i < cmdargc; i++) {   	if(i != 1)		strcat(args, " ");	strcat(args, cmdargv[i]);   }   return(DOcommand("SITE", args));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -