当前位置:编程学习 > C/C++ >>

TSDK.H 开发包

T-ware Inc.
C 语言开发包

[cpp]
/*
    TSDK.H
 
    Definitions for Common functions and string functions.
 
    Copyright (c)  Tody 2010
    All Rights Reserved 
*/ 
 
#ifndef __TSDK_H__ 
#define __TSDK_H__ 
 
#include <string.h> 
#include <time.h> 
#include <ctype.h> 
 
#if __STDC__ 
# define _Cdecl 
#else 
# define _Cdecl  cdecl 
#endif 
 
#ifndef DOS 
# define SAY(x...)   printf(x) 
#else 
# define SAY(x)      printf(x) 
#endif 
 
#ifndef MAX 
# define MAX(a, b) ((a) < (b) ? (b) : (a)) 
#endif 
#ifndef MIN 
# define MIN(a, b) ((a) < (b) ? (a) : (b)) 
#endif 
 
#define FATAL(x) do { \ 
    printf("\n[-] PROGRAM ABORT : %s", x); \ 
    exit(1); \ 
  } while (0) 
 
#define VERSION "1.0.0" 
 
#define true    1 
#define false   0 
 
typedef char    bool; 
 
 
/* Function Declare */ 
bool  _Cdecl    copy_file   (char *scr_file, char *dst_file, int flag); 
bool  _Cdecl    file_exist  (char *file); 
 
char *_Cdecl    skip_spaces (const char *str); 
char *_Cdecl    strim       (char *p); 
int   _Cdecl    t_random    (int a, int b); 
bool  _Cdecl    log_save    (char *log_file, char *ErrMsg); 
 
bool  _Cdecl    is_leap_yaer(int year); 
int   _Cdecl    which_day   (int year, int mon, int day); 
 
bool  _Cdecl        is_little_endian( void ); 
 
/*******************************************************************
*       Remove leading whitespace string  
*******************************************************************/ 
char *skip_spaces(const char *str) 

        while (isspace(*str)) 
                ++str; 
        return (char *)str; 

 
/*******************************************************************
*       Remove Left and right blank of string  
*******************************************************************/ 
char *strim(char *s) 

        size_t size; 
        char *end; 
 
        s = skip_spaces(s); 
        size = strlen(s); 
        if (!size) 
                return s; 
 
        end = s + size - 1; 
        while (end >= s && isspace(*end)) 
                end--; 
        *(end + 1) = '\0'; 
 
        return s; 

 
/*******************************************************************
*       Random a number between a and b (not contain b)
*******************************************************************/ 
int t_random (int a, int b) 

    if (a >= b) return -1; 
    srand(time(NULL));  /* Seed is time */ 
    return (rand()%(b-a) + a);   

 
/*******************************************************************
*       Copy file from scr_file to des_file
*******************************************************************/ 
bool copy_file (char *scr_file, char *des_file, int flag) 

    FILE *fin,*fout; 
    char ch; 
     
    if (0 == flag  && file_exist(des_file) == 1)    return false;   
     
    if ((fin=fopen(scr_file, "rb")) == NULL) 
    { 
        return false; 
    } 
    if ((fout=fopen(des_file, "wb")) == NULL) 
    { 
        return false; 
    } 
 
    ch = fgetc(fin);  /* File copying... */ 
    while ( ch != EOF) 
    { 
        fputc(ch, fout); 
        ch = fgetc(fin);     
    } 
 
    fclose(fout); 
    fclose(fin); 
    return true; 

 
/*******************************************************************
*       Check file is exist or not
*******************************************************************/ 
bool file_exist (char *file) 

    return !access(file,0); /* File exist, access() return 0, else return -1 */ 

 
/*******************************************************************
*       Save Log to File
*******************************************************************/ 
bool log_save ( char *log_file, char *ErrMsg) 

    FILE *p; 
    p = fopen(log_file, "wb"); 
    if ( p == NULL ) return false; 
    fprintf(p, "[Err]: %s\n", ErrMsg);  /* Write ErrMsg to File. */ 
    fclose(p); 
    return true; 

 
/*******************************************************************
*       Is Leap Year
*******************************************************************/ 
 
bool is_leap_year ( int year ) 

    return ( ((year%100==0) && (year%400==0)) || ((year%100!=0) && (year%4==0)) ); 

 
/**********************************

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,