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

📄 ftpfs.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
typedef struct File	File;typedef struct Node	Node;typedef struct OS	OS;#pragma incomplete Fileenum{	Maxpath=	512,};/* a tree for file path's - this mirrors the directory structure */struct Node{	String	*remname;	Dir	*d;	Node	*parent;	Node	*sibs;	Node	*children;	File	*fp;	short	depth;	char	chdirunknown;	/* true if QTDIR bit of files in this dir is unknown */	int	opens;};/* OS types */enum{	Unix=		1,	Tops=		2,	Plan9=		3,	VM=		4,	VMS=		5,	MVS=		6,	NetWare=	7,	OS½=		8,	TSO=		9,	NT=		10,	Unknown=	11,};struct OS{	int	os;	char	*name;};extern OS oslist[];/* temporary files */void	filefree(Node*);int	fileread(Node*, char*, long, int);int	filewrite(Node*, char*, long, int);void	filedirty(Node*);void	fileclean(Node*);int	fileisdirty(Node*);/* ftp protocol */void	hello(char*);void	quit(void);void	preamble(char*);void	rlogin(char *, char *);void	clogin(char *, char *);void	nop(void);int	readdir(Node*);int	createdir(Node*);int	readfile(Node*);int	createfile(Node*);int	changedir(Node*);int	removefile(Node*);int	removedir(Node*);/* misc */void*	safecpy(void*, void*, int);void	fatal(char*, ...);int	seterr(char*, ...);Node*	extendpath(Node*, String*);Node*	newnode(Node*, String*);void	uncache(Node*);void	invalidate(Node*);void	uncachedir(Node*, Node*);Node*	newtopsdir(char*);void	fixsymbolic(Node*);Dir*	reallocdir(Dir *d, int dofree);Dir*	dir_change_name(Dir *d, char *name);Dir*	dir_change_uid(Dir *d, char *name);Dir*	dir_change_gid(Dir *d, char *name);Dir*	dir_change_muid(Dir *d, char *name);extern Node *remdir;	/* current directory on remote side */extern Node *remroot;	/* root on remote side */extern int os;		/* remote os */extern int debug;	/* non-zero triggers debugging output */extern int usenlst;extern char *nosuchfile;extern char *ext;	/* add to names of non-dir files */extern int defos;extern int quiet;extern char *user;#define ISCACHED(x) ((x)->d->type)#define UNCACHED(x) (x)->d->type = 0#define CACHED(x) { (x)->d->type = 1; (x)->d->atime = time(0); }#define ISOLD(x) (x)->d->atime + TIMEOUT < time(0)#define ISVALID(x) ((x)->d->dev)#define INVALID(x) (x)->d->dev = 0#define VALID(x) (x)->d->dev = 1#define TIMEOUT 5*60#define DMSYML 0x10000000#define MAXFDATA 8192extern char	net[];		/* network for connections */

⌨️ 快捷键说明

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