57 lines
1.8 KiB
C
57 lines
1.8 KiB
C
/**
|
|
* @file sasstr.h
|
|
* @brief Some string functions.
|
|
*
|
|
* @version $Revision: 1.1 $
|
|
* @date $Date: 2018/11/24 06:54:50 $
|
|
* @author $Author: lizhongming $
|
|
* @state $State: Exp $
|
|
*
|
|
*/
|
|
|
|
#ifndef _SASSTR_H_CJRONDELXCYKGFG_
|
|
#define _SASSTR_H_CJRONDELXCYKGFG_
|
|
|
|
#define STR_UINT32_BUFFER_SIZE ( sizeof ( uint32_t ) * 3 + 2 )
|
|
#define STR_UINT64_BUFFER_SIZE ( sizeof ( apr_time_t ) * 3 +2 )
|
|
|
|
typedef struct sas_strings sas_strings;
|
|
struct sas_strings{
|
|
size_t len;
|
|
char *content;
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//APR_DECLARE(apr_status_t)
|
|
//sas_strsplit(char* str, sas_strings *content,char *delimeter, int *segment);
|
|
APR_DECLARE_NONSTD(apr_status_t) sas_strcat(char *buffer,size_t *buffer_len , ... );
|
|
APR_DECLARE_NONSTD(apr_status_t) sas_strcat_withenter(char *buffer,size_t * buffer_len ,...);
|
|
|
|
APR_DECLARE(char *) sas_apr_time_to_str(char *buffer ,apr_time_t n);
|
|
APR_DECLARE(char *) sas_uint32_to_str(char *buffer ,uint32_t n);
|
|
APR_DECLARE(apr_status_t) sas_strsplit (char* str, sas_strings *content,char *delimeter, int *segment);
|
|
APR_DECLARE(char*) sas_get_nextline(char *buff);
|
|
//mem_str可以为非0结束的字符串,dst缓冲区大最少要大于len+1(用户自行保证)
|
|
//返回生成的字符串的末尾后一个位置(也就是'\0'的位置)
|
|
APR_DECLARE(char*) sas_strmemcpy(char *dst,const char *mem_str,size_t len);
|
|
|
|
//拼接文件路径+文件名(考虑到了不同的平台环境)
|
|
APR_DECLARE(char*) sas_str_path_cat(const char *path,const char *filename );
|
|
//strcat,带缓冲区大小验证
|
|
APR_DECLARE(apr_status_t) sas_strcat_withcheck(char *dst,const char*src,size_t buffer_size);
|
|
|
|
|
|
//这个函数是用来释放由库申请的内存的,只所以增加这个库级函数是因为WINDOWS
|
|
//库内部的内存外部没法释放,不得已而为之.
|
|
//释放由public库申请的内存,如
|
|
APR_DECLARE(void) sas_publiclib_free(char *mem);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif//_IPCMONITOR_HEAD_
|