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

📄 tools.h

📁 网络爬虫程序
💻 H
字号:
/***************************************************************************//*    This code is part of WWW grabber called pavuk                        *//*    Copyright (c) 1997 - 2001 Stefan Ondrejicka                          *//*    Distributed under GPL 2 or later                                     *//***************************************************************************/#ifndef _tools_h_#define _tools_h_#include <time.h>#include <stdlib.h>#include <stdarg.h>#include "dllist.h"typedef unsigned char bool_t;#ifndef FALSE#define FALSE 0#endif#ifndef TRUE#define TRUE 1#endif#define TL_MAX(x,y)             ((x) > (y) ? (x) : (y))#define TL_MIN(x,y)             ((x) < (y) ? (x) : (y))#define TL_BETWEEN(c,a,b)       ((c) >= (a) && (c) <= (b))#define NUM_ELEM(x)     ((unsigned int) (sizeof(x) / sizeof(x[0])))#define _free(ptr) if (ptr) {free(ptr); ptr = NULL;}extern char *tl_strdup(const char *);extern char *tl_strndup(const char *, int);extern char **tl_str_split(const char *, const char *);extern dllist *tl_numlist_split(char *, char *);extern void tl_strv_free(char **);extern int tl_strv_find(char **, char *);extern int tl_strv_length(char **);extern void tl_strv_sort(char **);extern char *tl_str_append(char *, char *);extern char *tl_str_nappend(char *, const char *, int);extern char *tl_str_concat(char *, ...);extern char *tl_data_concat_data(int *, char *, int, char *);extern char *tl_data_concat_str(int *, char *, ...);extern void tl_msleep(unsigned int);extern void tl_sleep(unsigned int);extern char *tl_adjust_filename(char *);extern int tl_filename_needs_adjust(char *);extern int tl_is_dirname(const char *);extern char *tl_get_extension(char *);extern char *tl_get_basename(char *);extern int tl_flock(int *, const char *, int, int);extern int tl_mkstemp(char *);extern char *tl_load_text_file(char *);extern int tl_save_text_file(char *, char *, int);extern void strip_nl(char *);extern void omit_chars(char *, char *);extern char *upperstr(char *);extern char *lowerstr(char *);extern int makealldirs(const char *);extern char *get_abs_file_path(char *);extern char *get_abs_file_path_oss(char *);extern char *get_relative_path(char *, char *);extern bool_t is_in_list(char *, char **);extern bool_t is_in_dllist(char *, dllist *);extern bool_t is_in_pattern_list(char *, char **);extern bool_t is_in_pattern_dllist(char *, dllist *);extern char *get_1qstr(const char *);extern char *strtokc_r(char *, int, char **);extern char *strfindnchr(char *, int, int);extern void *_malloc(int);extern void *_realloc(void *, int);extern int get_line(char *, int, int);extern bool_t file_is_html(char *);extern bool_t ext_is_html(char *);extern long int _atoi(char *);extern double _atof(char *);extern char *_strtrchr(char *, int, int);extern void xprintf(int, const char *, ...);extern void xvaprintf(int, const char *, va_list *);extern void xdebug(int, const char *, ...);extern void xvadebug(int, const char *, va_list *);extern void xperror(const char *);extern void xherror(const char *);extern int unlink_recursive(char *);extern unsigned int hash_func(const char *, int);extern int str_is_in_list(int, char *, ...);extern int copy_fd_to_file(int, char *);extern char *escape_str(char *, char *);#ifdef __CYGWIN__extern char *cvt_win32_to_unix_path(char *);extern char *cvt_unix_to_win32_path(char *);extern int tl_win32_system(char *);#define tl_system(cmd)  tl_win32_system(cmd)#else#define tl_system(cmd)  system(cmd)#endif#ifndef HAVE_SETENVextern int tl_setenv(const char *, const char *, int);#define setenv          tl_setenv#define unsetenv(var)   tl_setenv(var, "", 1)#endif#ifdef HAVE_FLOCK#include <sys/file.h>#define _flock(fd, fname, opt, blk)     tl_flock(&fd, fname, opt, blk)#define _funlock(fd)                    flock(fd, LOCK_UN)#else#ifdef HAVE_FCNTL_LOCKextern int tl_funlock(int);#define _flock(fd, fname, opt, blk)     tl_flock(&fd, fname, opt, blk)#define _funlock(fd)                    tl_funlock(fd)#else#define _flock(fd, fname, opt, blk)     0#define _funlock(fd)                    0#endif#endif#define new_string      tl_strdup#define new_n_string    tl_strndup#define tl_ascii_isalnum(c) \        (TL_BETWEEN((c),'a','z') || TL_BETWEEN((c),'A','Z') || \         TL_BETWEEN((c),'0','9'))#define tl_ascii_isalpha(c) \        (TL_BETWEEN((c),'a','z') || TL_BETWEEN((c),'A','Z'))#define tl_ascii_isascii(c) \        (TL_BETWEEN((c),0,127))#define tl_ascii_isblank(c) \        (((c) == ' ') || ((c) == '\t'))#define tl_ascii_iscntrl(c) \        (TL_BETWEEN((c),0,31) || ((c) == 127))#define tl_ascii_isdigit(c) \        (TL_BETWEEN((c),'0','9'))#define tl_ascii_isgraph(c) \        (TL_BETWEEN((c),33,126))#define tl_ascii_islower(c) \        (TL_BETWEEN((c),'a','z'))#define tl_ascii_isprint(c) \        (TL_BETWEEN((c),32,126))#define tl_ascii_ispunct(c) \        (TL_BETWEEN((c),33,47) || TL_BETWEEN((c),58,64) || \         TL_BETWEEN((c),91,96) || TL_BETWEEN((c),123,126))#define tl_ascii_isspace(c) \        (((c) == ' ') || ((c) == '\f') || ((c) == '\n') || ((c) == '\r') || \         ((c) == '\t') || ((c) == '\v'))#define tl_ascii_isupper(c) \        (TL_BETWEEN((c),'A','Z'))#define tl_ascii_isxdigit(c) \        (TL_BETWEEN((c),'0','9') || TL_BETWEEN((c),'a','f') || \         TL_BETWEEN((c),'A','F'))#define tl_ascii_tolower(c) \        (tl_ascii_isupper(c) ? ('a' + (c - 'A')) : c)#define tl_ascii_toupper(c) \        (tl_ascii_islower(c) ? ('A' + (c - 'a')) : c)#endif

⌨️ 快捷键说明

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