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

📄 sfl.h

📁 本程序为在linux下实现FTP传输文件的实现
💻 H
📖 第 1 页 / 共 5 页
字号:
 *  DOES_BSDSIGNALS     Supports BSD signal model (e.g. siginterrupt) */#if (defined (AF_INET))#   define DOES_SOCKETS                 /*  System supports BSD sockets      */#else#   undef  DOES_SOCKETS#endif#if (defined (__UNIX__) || defined (__VMS__) || defined (__OS2__))#   define DOES_UID                     /*  System supports uid functions    */#else#   undef  DOES_UID#   if (!defined (__DJGPP__))           /*  gid_t and uid_t already defined  */        typedef int gid_t;              /*  Group id type                    */        typedef int uid_t;              /*  User id type                     */#   endif#endif#if (defined (__WINDOWS__) && (!defined (__LCC__)))#   define DOES_SNPRINTF#   define snprintf  _snprintf#   define vsnprintf _vsnprintf#elif (defined (__OS2__))#   define DOES_SNPRINTF#elif (defined (__UTYPE_SCO))#   define DOES_SNPRINTF#elif (defined (__UTYPE_LINUX))#   define DOES_SNPRINTF#else#   undef DOES_SNPRINTF#endif/*  SunOS 5 (Solaris) does not support BSD-style signal handling             */#if (!defined (__UTYPE_SUNSOLARIS))#   define DOES_BSDSIGNALS#else#   undef  DOES_BSDSIGNALS#endif#endif                                  /*  Include PRELUDE.H                *//*  ----------------------------------------------------------------<Prolog>-    Name:       sflvers.h    Title:      Define SFL version    Package:    Standard Function Library (SFL)    Written:    1996/11/21  iMatix SFL project team <sfl@imatix.com>    Revised:    1998/10/02    Synopsis:   Defines the SFL_VERSION constant.    Copyright:  Copyright (c) 1996-2000 iMatix Corporation    License:    This is free software; you can redistribute it and/or modify                it under the terms of the SFL License Agreement as provided                in the file LICENSE.TXT.  This software is distributed in                the hope that it will be useful, but without any warranty. ------------------------------------------------------------------</Prolog>-*/#ifndef SFLVERS_INCLUDED               /*  Allow multiple inclusions        */#define SFLVERS_INCLUDED#define SFL_VERSION     "2.01"          /*  Main SFL version                 */#endif/*  ----------------------------------------------------------------<Prolog>-    Name:       sflbits.h    Title:      Large bitstring manipulation functions    Package:    Standard Function Library (SFL)    Written:    1996/05/14  iMatix SFL project team <sfl@imatix.com>    Revised:    1997/09/08    Synopsis:   Provides operations to manipulate large bitstrings.  The                bitstrings are compressed.  Intended for bit-based index                techniques, where bitstrings can be millions of bits long.                These functions are still in development; this is an early                version that provides basic functionality.  Simple tests                on large bitmaps with random filling show a cost of about                3 bytes per bit, after compression.  This includes all the                indexing information.    Copyright:  Copyright (c) 1996-2000 iMatix Corporation    License:    This is free software; you can redistribute it and/or modify                it under the terms of the SFL License Agreement as provided                in the file LICENSE.TXT.  This software is distributed in                the hope that it will be useful, but without any warranty. ------------------------------------------------------------------</Prolog>-*/#ifndef SFLBITS_INCLUDED               /*  Allow multiple inclusions        */#define SFLBITS_INCLUDED/*  Definitions                                                              */#define BIT_DATASIZE    500             /*  Size of block data part          */#define BIT_INDEXSIZE   BIT_DATASIZE/2  /*  Size of block index part         */#define BIT_SECTSIZE    8192            /*  Size of one bitstring section    */#define BIT_MAXBLOCKS   1024            /*  Max. size of bitstring           */#define BIT_MAXBITS     16384000L       /*  Max. possible bit number         */typedef struct {                        /*  Bitstring block                  */    union {        byte  data  [BIT_DATASIZE];     /*    Data record part               */        dbyte index [BIT_INDEXSIZE];    /*    Index record part              */    } block;    dbyte left,                         /*    Pointer to left (index only)   */          right;                        /*    Pointer to right (data too)    */    int   size;                         /*    Size of data part              */} BITBLOCK;typedef struct {                        /*  Bitstring object                 */    BITBLOCK       *block [BIT_MAXBLOCKS];          /*  Table of allocated blocks        */    int        block_count;                    /*  How many allocated blocks        */    dbyte        free_list;                      /*  Block free list                  */} BITS;extern long bits_free_count;            /*  We count free() and malloc()     */extern long bits_alloc_count;/*  Function prototypes                                                      */#ifdef __cplusplusextern "C" {#endifint   bits_init    (void);int   bits_term    (void);BITS *bits_create  (void);void  bits_destroy (BITS *bits);int   bits_set     (BITS *bits, long bit);int   bits_clear   (BITS *bits, long bit);int   bits_test    (const BITS *bits, long bit);int   bits_fput    (FILE *file, const BITS *bits);BITS *bits_fget    (FILE *file);#ifdef __cplusplus}#endif#endif/*  ----------------------------------------------------------------<Prolog>-    Name:       sflcomp.h    Title:      Compression functions    Package:    Standard Function Library (SFL)    Written:    1991/05/20  iMatix SFL project team <sfl@imatix.com>    Revised:    1997/09/08    Synopsis:   Various compression/decompression functions.  The LZ-type                algorith (LZRW1/KH) was originally written by Kurt Haenen                <ghgaea8@blekul11> and made portable by P. Hintjens. This                is a reasonable LZ/RLE algorithm, very fast, but about 30%                less efficient than a ZIP-type algorithm in terms of space.                The RLE algorithms are better suited to compressing sparse                data.  The nulls variant is specifically tuned to data that                consists mostly of binary zeroes.  The bits variant is                tuned for compressing sparse bitmaps.    Copyright:  Copyright (c) 1996-2000 iMatix Corporation    License:    This is free software; you can redistribute it and/or modify                it under the terms of the SFL License Agreement as provided                in the file LICENSE.TXT.  This software is distributed in                the hope that it will be useful, but without any warranty. ------------------------------------------------------------------</Prolog>-*/#ifndef SFLCOMP_INCLUDED               /*  Allow multiple inclusions        */#define SFLCOMP_INCLUDED/*  Function prototypes                                                      */#ifdef __cplusplusextern "C" {#endifword compress_block (const byte *source, byte *dest, word source_size);word expand_block   (const byte *source, byte *dest, word source_size);word compress_rle   (      byte *source, byte *dest, word source_size);word expand_rle     (const byte *source, byte *dest, word source_size);word compress_nulls (      byte *source, byte *dest, word source_size);word expand_nulls   (const byte *source, byte *dest, word source_size);word compress_bits  (      byte *source, byte *dest, word source_size);word expand_bits    (const byte *source, byte *dest, word source_size);#ifdef __cplusplus}#endif#endif/*  ----------------------------------------------------------------<Prolog>-    Name:       sflcons.h    Title:      Console output functions    Package:    Standard Function Library (SFL)    Written:    1997/05/22  iMatix SFL project team <sfl@imatix.com>    Revised:    1998/02/08    Synopsis:   Provides redirectable console output: use the coprintf() and                coputs() calls instead of printf() and puts() in a real-time                application.  Then, you can call console_send() to send all                console output to a specified function.  This is a useful                way to get output into -- for example -- a GUI window.    Copyright:  Copyright (c) 1996-2000 iMatix Corporation    License:    This is free software; you can redistribute it and/or modify                it under the terms of the SFL License Agreement as provided                in the file LICENSE.TXT.  This software is distributed in                the hope that it will be useful, but without any warranty. ------------------------------------------------------------------</Prolog>-*/#ifndef SFLCONS_INCLUDED               /*  Allow multiple inclusions        */#define SFLCONS_INCLUDED/*  Type definition for operator redirection function                        */typedef void (CONSOLE_FCT) (const char *);/*  Function prototypes                                                      */#ifdef __cplusplusextern "C" {#endifvoid  console_send        (CONSOLE_FCT *console_fct, Bool echo);void  console_enable      (void);void  console_disable     (void);void  console_set_mode    (int CONSOLE_MODE);int   console_capture     (const char *filename, char mode);int   coputs              (const char *string);int   coprintf            (const char *format, ...);int   coputc              (int character);#ifdef __cplusplus}#endif/*  Constant definitions                                                     */enum {    CONSOLE_PLAIN,                      /*  Print as requested               */    CONSOLE_DATETIME,                   /*  Prefix with date and time        */    CONSOLE_TIME                        /*  Prefix with time only            */};#endif/*  ----------------------------------------------------------------<Prolog>-    Name:       sflconv.h    Title:      Conversion functions    Package:    Standard Function Library (SFL)    Written:    1995/12/17  iMatix SFL project team <sfl@imatix.com>    Revised:    1998/10/19    Synopsis:   These functions provide conversion between a set of datatypes                (dates, times, numbers, Booleans) and external strings that                represent the values.  The objective is to format datatypes                for display or printing, and to validate and convert strings                supplied by the user.  Conversion is controlled by a set of                options specific to each datatype.  Additionally, dates and                times may be formatted using picture strings.  The functions                were written for use in an interactive 'forms' environment.    Copyright:  Copyright (c) 1996-2000 iMatix Corporation    License:    This is free software; you can redistribute it and/or modify                it under the terms of the SFL License Agreement as provided                in the file LICENSE.TXT.  This software is distributed in                the hope that it will be useful, but without any warranty. ------------------------------------------------------------------</Prolog>-*/#ifndef SFLCONV_INCLUDED               /*  Allow multiple inclusions        */#define SFLCONV_INCLUDED#ifdef __cplusplusextern "C" {#endifchar  *conv_number_str  (const char *number, int flags, char point,                         int decimals, int decimal_format, int width,                         int sign_format);char  *conv_str_number  (const char *string, int flags, char point,                         int decimals, int decimal_format, int width);char  *conv_date_str    (long date, int flags, int format, int order,                         char datesep, int width);long   conv_str_date    (const char *string, int flags, int format, int order);int    conv_str_day     (const char *day_name);char  *conv_time_str    (long time, int flags, char timesep, int width);long   conv_str_time    (const char *string);char  *conv_bool_str    (Bool boolean, int format);int    conv_str_bool    (const char *string);char  *conv_time_pict   (long time, const char *picture);char  *conv_date_pict   (long date, const char *picture);/** Not Yet Implemented **/char  *conv_float_str   (double number, int flags, int sign_format, char                         point, int decimals, int decimal_format, int width                        /*  Srcdoc: IGNORE                                   */                        );/** Not Yet Implemented **/double conv_str_float   (char *string, int flags, int sign_format,                         char point, int decimals, int decimal_format                        /*  Srcdoc: IGNORE                                   */                        );#ifdef __cplusplus}#endif#define FORMAT_MAX              80      /*  Max. size of formatted field     */#define CONV_MAX_DECS           100     /*  Up to 100 decimal positions      *//*  Global variables for error reporting                                     */extern int   conv_reason;               /*  Reason for last conversion error */                                        /*  0 = okay; >0 = error             */extern char *conv_reason_text [];       /*  Array of error messages 1..n     */                                        /*  Index using conv_reason          *//*  Possible values for conv_reason                                          */#define CONV_NO_ERRORS             0    /*  No errors                        */#define CONV_ERR_INVALID_INPUT     1    /*  Unrecognised char in input       */#define CONV_ERR_OUT_OF_RANGE      2    /*  Value out of valid range         *//*  conv_str_bool ()                                                         */#define CONV_ERR_NOT_BOOLEAN       3    /*  Not a yes/no or true/false value */

⌨️ 快捷键说明

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