📄 cff.h
字号:
int cfungetc(int, cfFILE*);
int cfprintf(const char *fmt, ...);
int cffprintf(cfFILE *iop, const char *fmt, ...);
int cfsprintf(char *str, const char *fmt, ...);
int cfvprintf(const char *fmt, char *args);
int cfvfprintf(cfFILE *iop, const char *fmt, char *args);
int cfvsprintf(char *str, const char *fmt, char *args);
int cfsscanf(char *str, const char *fmt, ...);
int cfvsscanf(char *str, const char *fmt, char **args);
int cffscanf(cfFILE *iop, const char *fmt, ...);
int cfvfscanf(cfFILE *iop, const char *fmt, char **args);
int cfscanf(const char *fmt, ...);
int cfvscanf(const char *fmt, char **args);
void cfinit(char *appname, int lbufpages, char *permfile);
void cfexit();
void cfport_settestflags(int flags);
void cfhash(const void *keyptr, int keysize, CAT *cat);
long cfrdwr_object(void *handle, void *userbuffer, long amount, int mode);
long cfseek(void *handle, long amount, int mode);
int cfkeycmp (void *keya, int lena, void *keyb, int lenb);
int cflexical_keycmp (void *keya, int lena, void *keyb, int lenb);
int cfitemcmp(void *itema, void *itemb);
void cfprintbitmaps(void *something);
void cfprintentries(void *something);
void *cfopen(char *path, long mode, void *info);
void *cfsubopen(void *handle, char *name, long mode, void *info);
void *cfopen_chunk(void *handle, void *item);
void *cfmake_chunk(void *handle, void *key , int keylen, int chunksize);
void *cfdup(void *handle);
void *cfreopen(void *handle);
void cfclose(void *handle);
int cfunlink(void *something, ... );
int cfstat(void *something, void *stbuf);
int cfsubstat(void *handle, char *name, void *stbuf);
void *cfcopy(void *something_dst, void *something_src);
long cfcopy_file(void *handle_dst, void *handle_src);
int cfcopy_object(void *handle_dst, void *handle_src);
void cftotalloc(void *something, unsigned long *used, unsigned long *alloc);
void *cflocalize(void *handle, void *item);
void cfrelease(void *ptr, long mode);
#define cfread(a,b,c) \
cfrdwr_object(a,b,c,S_READBLK)
#define cfwrite(a,b,c) \
cfrdwr_object(a,b,c,S_WRITEBLK)
int cfdef(char *key, char *def);
int cfsysdef(char *key, char *def);
int cfappdef(char *key, char *def);
int cfundef(char *key);
int cfsysundef(char *key);
int cfappundef(char *key);
int cftrn(char *strn, char **newstrn);
int cfpathtrn(char *strn, char **newstrn);
void cfflush(void *handle);
void cfsync(void);
int cftruncate(void *something, unsigned long size);
int cfrename(const char *oldname, const char *newname);
int cfrekey(void *oldhd, void *oldkey, int oldkeylen, void *newhd, void *newkey, int newkeylen);
int cfinsertx(void *handle,void *key,int len,void *item,int dups,void *adup);
#define cfinsert(handle,keyptr,keylen,itemptr) \
cfinsertx(handle,keyptr,keylen,itemptr,NODUPS,NULL)
#define cfinsert_dupnum(handle,keyptr,keylen,itemptr,dupnum) \
cfinsertx(handle,keyptr,keylen,itemptr,OKDUPS,dupnum)
#define cfinsert_dupname(handle,keyptr,keylen,itemptr,dupname) \
cfinsertx(handle,keyptr,keylen,itemptr,DUPNAMES,dupname)
int cfqget(void *handle, void *keyptr, int keylen, void *bufptr, int buflen);
int cfqfind(void *handle, void *keyptr, int keylen, Item *keyi, Item *dati);
int cfqfindkey(void *handle, void *keyptr, int keylen, Item *keyi);
int cfqfinddat(void *handle, void *keyptr, int keylen, Item *dati);
int cffindx(void *handle, void *keyptr, int keylen, void *itemptr, void *adup);
#define cffind(handle,key,len,item) \
cffindx(handle,key,len,item,NULL)
#define cffind_dupnum(handle,key,len,item,dupnum) \
cffindx(handle,key,len,item,dupnum)
#define cffind_dupname(handle,dupname,itemptr) \
cffindx(handle,dupname,8,itemptr,(void *)0xffffffff)
#define cfreinsert(handle,key,len,item) \
cffindx(handle,key,-len,item,NULL)
#define cfreinsert_dupnum(handle,key,len,item,dupnum) \
cffindx(handle,key,-len,item,dupnum)
#define cfreinsert_dupname(handle,key,len,itemptr,dupname) \
cffindx(handle,dupname,-8,itemptr,(void *)0xffffffff)
int cffind_item(void *handle, void *key, int keylen, void *itemptr);
int cffind_mark(void *handle, void *itemptr);
#define cfdelete(a,b,c) \
cfdelete_item(a,b,c,NULL)
int cfdelete_item(void *handle, void *key, int keylen, void *itemptr);
int cfdelete_dupnum(void *handle, void *key, int keylen, long dupnum);
#define cfdelete_lastdupnum(a,b,c) \
cfdelete_dupnum(a,b,c,-1)
int cfdelete_dupname(void *handle, void *key, int keylen, void *dupname);
int cfdelete_lastdupname(void *handle, void *key, int keylen);
int cfdelete_alldupnames(void *handle, void *key, int keylen);
int cfdelete_alldupnums(void *handle, void *key, int keylen);
int cflastdupname(void *handle, void *key, int keylen, void *dupname);
long cfpush_item(void *handle, void *itemptr);
long cfpush_value(void *handle, unsigned long *value);
long cfpush_data(void *handle, void *datptr, int datsize);
long cfpop_item(void *handle, void *itemptr);
long cfpop_value(void *handle, unsigned long *value);
long cfpop_data(void *handle, void *datptr, int datsize);
long cfstackdepth(void *handle);
long cfcountdups(void *handle, void *key, int keylen);
long cfmisc(void *something, int func, ...);
void *cfopendir(void *path);
void cfclosedir(void *it);
CFDIRENT *cfreaddir(void *it);
CFDIRENT *cfreadfulldir(void *it);
void cfrewinddir(void *it);
void cftelldir(void *it, STOR *entry);
void cfseekdir(void *it, STOR *entry);
long cfentrycnt(void *something);
long cffilesize(void *something);
int cfseq_dupnum(void *handle, void *key, int len, void *itemptr, int mode);
#define cfhead_dupnum(a,b,c,d) cfseq_dupnum(a,b,c,d,CF_HEAD)
#define cftail_dupnum(a,b,c,d) cfseq_dupnum(a,b,c,d,CF_TAIL)
#define cfnext_dupnum(a,b,c,d) cfseq_dupnum(a,b,c,d,CF_NEXT)
#define cfprev_dupnum(a,b,c,d) cfseq_dupnum(a,b,c,d,CF_PREV)
int cfseq_dupname(void *handle, void *key, int len, void *itemptr, int mode);
#define cfhead_dupname(a,b,c,d) cfseq_dupname(a,b,c,d,CF_HEAD)
#define cftail_dupname(a,b,c,d) cfseq_dupname(a,b,c,d,CF_TAIL)
#define cfnext_dupname(a,b,c,d) cfseq_dupname(a,b,c,d,CF_NEXT)
#define cfprev_dupname(a,b,c,d) cfseq_dupname(a,b,c,d,CF_PREV)
#define cfdepth(a) \
cfmisc(a, CF_DEPTH)
#define cfmark(a) \
cfmisc(a, CF_MARK)
#define cfhead(a,b) \
cfmisc(a, CF_HEAD, b)
#define cftail(a,b) \
cfmisc(a, CF_TAIL, b)
#define cfnext(a,b) \
cfmisc(a, CF_NEXT, b)
#define cfprev(a,b) \
cfmisc(a, CF_PREV, b)
#define cfkeylen(a,b) \
cfmisc(a, CF_KEYLEN, b)
#define cfdatalen(a,b) \
cfmisc(a, CF_DATALEN, b)
#define cfbytesused(a) \
cfmisc(a, CF_USED)
#define cfbytesalloc(a) \
cfmisc(a, CF_ALLOC)
#define cfmodbufs(a) \
cfmisc(NULL, CF_MODBUFS, a)
#define cfcurbufs() \
cfmisc(NULL, CF_CURBUFS)
#define cfsetkeycmp(a,b) \
cfmisc(a, CF_SETKEYCMP, b)
#define cfsetitemcmp(a,b) \
cfmisc(a, CF_SETITEMCMP, b)
#define cfseterrfunc(a) \
cfmisc(NULL, CF_SETERRFUNC, a)
#define cfsetprintfunc(a) \
cfmisc(NULL, CF_SETPRINTFUNC, a)
#define cfisnew(a) \
cfmisc(a,CF_ISNEW)
#define cfsetverylazy(a) \
cfmisc(a, CF_LAZY)
#define cfsetlazy(a) \
cfmisc(a, CF_VERYLAZY)
#define cfclrlazy(a) \
cfmisc(a, CF_CLRLAZY)
#define cffilealloc(a) \
cfmisc(a, CF_FILEALLOC)
#define cfprealloc(a) \
cfmisc(a, CF_PREALLOC)
#define cfalignment(a) \
cfmisc(a, CF_ALIGNMENT)
#define cfmapsize(a) \
cfmisc(a, CF_MAPSIZE)
#define cfissorted(a) \
cfmisc(a, CF_ISSORTED)
#define cfkey(ccb,key,len) \
cfmisc(ccb, CF_KEY, key, len)
#define cfitem(ccb, item) \
cfmisc(ccb, CF_ITEM, item)
#define cfdata(ccb, buf, len) \
cfmisc(ccb, CF_DATA, buf, len)
void cfpflags(char *name, void *handle);
long cfobtype(void *handle);
void *cfgetspace(void *handle, long amount, void *addr);
int cfretspace(void *handle, void *addr);
void *cfputx(void *handle, void *keyptr, int keylen, void *itemptr,
int dupflg, void *adup, void *bufptr, long buflen);
#define cfput(handle,key,len,buf,buflen,itemptr) \
cfputx(handle,key,len,itemptr,NODUPS,NULL,buf,buflen)
#define cfput_dupnum(handle,key,len,buf,buflen,itemptr,dupnum) \
cfputx(handle,key,len,itemptr,OKDUPS,dupnum,buf,buflen)
#define cfput_dupname(handle,key,len,buf,buflen,itemptr,dupname) \
cfputx(handle,key,len,itemptr,DUPNAMES,dupname,buf,buflen)
#define cfreput(handle,key,len,buf,buflen,itemptr) \
cfputx(handle,key,len,itemptr,NODUPS,NULL,buf,-buflen)
#define cfreput_dupnum(handle,key,len,buf,buflen,itemptr,dupnum) \
cfputx(handle,key,len,itemptr,OKDUPS,dupnum,buf,-buflen)
#define cfreput_dupname(handle,key,len,buf,buflen,itemptr,dupname) \
cfputx(handle,key,len,itemptr,DUPNAMES,dupname,buf,-buflen)
int cfgetx(void *handle, void *keyptr, int keylen,
void *bufptr, long buflen, void *adup);
#define cfget(handle,key,len,buf,buflen) \
cfgetx(handle,key,len,buf,buflen,NULL)
#define cfget_dupnum(handle,key,len,buf,buflen,dupnum) \
cfgetx(handle,key,len,buf,buflen,dupnum)
#define cfget_dupname(handle,dupname,buf,buflen) \
cfgetx(handle,dupname,8,buf,buflen,(void *)0xffffffff)
int cfchdir(char *);
void cfgetcwd(char *cwd, int size);
int cfdozip(void *, int, void *, int, int);
#define cfzip(dst,dsize,src,ssize) \
cfdozip(dst,dsize,src,ssize,0)
#define cfunzip(dst,dsize,src,ssize) \
cfdozip(dst,dsize,src,ssize,-1)
void *malloc(size_t);
void free(void *);
unsigned mallocsize(const void *);
#if 0 /* some include files use size_t for these functions */
void *calloc(unsigned, unsigned);
void *realloc(void *, unsigned);
void *memalign(unsigned, unsigned);
void *valloc(unsigned);
#endif
void *mallocC(long, unsigned);
void *callocC(long, unsigned, unsigned);
void *reallocC(long, void *, unsigned);
void *vallocC(long, unsigned);
void *memalignC(long, unsigned, unsigned);
void freeC(long, void *);
void freecat(long);
void *cfmalloc(unsigned, STOR *);
void cffree(STOR *);
/* DEFINITIONS FOR THE INTERNAL COPY OF DLD */
/* Error codes */
#define DLD_ENOFILE 1 /* cannot open file */
#define DLD_EBADMAGIC 2 /* bad magic number */
#define DLD_EBADHEADER 3 /* failure reading header */
#define DLD_ENOTEXT 4 /* premature eof in text section */
#define DLD_ENOSYMBOLS 5 /* premature end of file in symbols */
#define DLD_ENOSTRINGS 6 /* bad string table */
#define DLD_ENOTXTRELOC 7 /* premature eof in text relocation */
#define DLD_ENODATA 8 /* premature eof in data section */
#define DLD_ENODATRELOC 9 /* premature eof in data relocation */
#define DLD_EMULTDEFS 10 /* multiple definitions of symbol */
#define DLD_EBADLIBRARY 11 /* malformed library archive */
#define DLD_EBADCOMMON 12 /* common block not supported */
#define DLD_EBADOBJECT 13 /* malformed input file (not rel or
archive) */
#define DLD_EBADRELOC 14 /* bad relocation info */
#define DLD_ENOMEMORY 15 /* virtual memory exhausted */
#define DLD_EUNDEFSYM 16 /* undefined symbol */
extern int dld_errno; /* error code returned by dld */
extern int dld_undefined_sym_count; /* # of undefined global symbols */
extern int dld_init (); /* initialize the dld routines */
extern int dld_link (); /* dynamically link and load an object
file */
extern void *
dld_get_symbol (); /* return the address of the named
identifier */
extern void *
dld_get_func (); /* return the address of the named
function */
extern void *
dld_get_bare_symbol (); /* same as dld_get_symbol except that
no underscore (_) is prepended. Use
to locate symbols defined by
assembly routines. */
extern int dld_unlink_by_file (); /* unlink a file */
extern int dld_unlink_by_symbol (); /* unlink the module that defines the
given symbol */
extern int
dld_function_executable_p (); /* return true if the named C function
is executable */
extern char **
dld_list_undefined_sym (); /* return an array of undefined symbols */
extern char *
dld_find_executable (); /* return the full path name of the
given executable file. */
extern int
dld_create_reference (); /* explicitly create a reference to the
given symbol. */
extern int dld_define_sym (); /* explicitly define the value for the
given symbol. */
extern void
dld_remove_defined_symbol (); /* remove a explicitly defined symbol */
extern void dld_perror (); /* print error messages. */
extern void dld_demand_load(); /* define all undefined symbols
with negative numbers */
extern void dld_use_library(); /* add a filename for undefined symbol
search */
extern void dld_nouse_library(); /* remove a library from the search list */
extern void *dld_resolve_symbol(); /* resolve one of the demand loadable undefs */
extern void dld_trace(); /* set the trace level */
extern char *dld_symname(); /* return name of a demand loadable undef */
extern void *dld_rename_symbol(char *old, char *new);
extern int dld_rename_file(char *old, char *new);
extern void dld_lib_check(int dynlink); /* force search of library list */
extern void dld_load_symb(char *symb, int dynlink);
extern int dld_scan_file(void *fhandle, void *thandle);
extern void dld_oxset_libtype(int type);
extern void dld_oxset_libnum(int libnum);
extern void dld_oxload_thunk(int thunknum);
extern int dld_oxprep_thunk(char *symb);
typedef struct {
void *pad;
char *name;
long value;
} dldSymbol;
/* PATTERN MATCH FLAGS */
#define P_LEADING_DOT (0x1)
#define P_IS_PATH (0x2)
#define P_PAT_PATH (0x4)
#define P_USES_ESCAPES (0x8)
#define P_PCDOS (0x10)
int pattern_match (char *pattern, char *string, int flags);
int check_for_pattern(char *cp, int flags);
/* CTYPE DEFINITIONS */
#define _mU (0x01)
#define _mL (0x02)
#define _mN (0x04)
#define _mX (0x08)
#define _mS (0x10)
#define _mP (0x20)
#define _mC (0x40)
#define _mB (0x80)
extern unsigned char cfctype[];
#define isalpha(c) (cfctype[(unsigned char) c]&(_mU|_mL))
#define isupper(c) (cfctype[(unsigned char) c]&_mU)
#define islower(c) (cfctype[(unsigned char) c]&_mL)
#define isdigit(c) (cfctype[(unsigned char) c]&_mN)
#define isxdigit(c) (cfctype[(unsigned char) c]&(_mX|_mN))
#define isspace(c) (cfctype[(unsigned char) c]&_mS)
#define ispunct(c) (cfctype[(unsigned char) c]&_mP)
#define isalnum(c) (cfctype[(unsigned char) c]&(_mU|_mL|_mN))
#define isprint(c) (cfctype[(unsigned char) c]&(_mP|_mU|_mL|_mN|_mB))
#define isgraph(c) (cfctype[(unsigned char) c]&(_mP|_mU|_mL|_mN))
#define iscntrl(c) (cfctype[(unsigned char) c]&_mC)
#define isascii(c) ((unsigned char)(c)<=(0x7f))
#define toupper(c) ({unsigned char _c = (unsigned char)(c); islower(_c) ? (_c-32) : _c; })
#define tolower(c) ({unsigned char _c = (unsigned char)(c); isupper(_c) ? (_c+32) : _c; })
#define toascii(c) ((c)&(0x7f))
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -