plumber.h

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C头文件 代码 · 共 94 行

H
94
字号
typedef struct Exec Exec;typedef struct Rule Rule;typedef struct Ruleset Ruleset;/* * Object */enum{	OArg,	OAttr,	OData,	ODst,	OPlumb,	OSrc,	OType,	OWdir,};/* * Verbs */enum{	VAdd,	/* apply to OAttr only */	VClient,	VDelete,	/* apply to OAttr only */	VIs,	VIsdir,	VIsfile,	VMatches,	VSet,	VStart,	VTo,};struct Rule{	int	obj;	int	verb;	char	*arg;		/* unparsed string of all arguments */	char	*qarg;	/* quote-processed arg string */	Reprog	*regex;};struct Ruleset{	int	npat;	int	nact;	Rule	**pat;	Rule	**act;	char	*port;};struct Exec{	Plumbmsg	*msg;	char			*match[10];	int			p0;		/* begin and end of match */	int			p1;	int			clearclick;	/* click was expanded; remove attribute */	int			setdata;	/* data should be set to $0 */	int			holdforclient;	/* exec'ing client; keep message until port is opened */	/* values of $variables */	char			*file;	char 			*dir;};void		parseerror(char*, ...);void		error(char*, ...);void*	emalloc(long);void*	erealloc(void*, long);char*	estrdup(char*);Ruleset**	readrules(char*, int);void		startfsys(void);Exec*	matchruleset(Plumbmsg*, Ruleset*);void		freeexec(Exec*);char*	startup(Ruleset*, Exec*);char*	printrules(void);void		addport(char*);char*	writerules(char*, int);char*	expand(Exec*, char*, char**);void		makeports(Ruleset*[]);void		printinputstack(void);int		popinput(void);Ruleset	**rules;char		*user;char		*home;jmp_buf	parsejmp;char		*lasterror;char		**ports;int		nports;

⌨️ 快捷键说明

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