Files
microser/include/sasstr.h
2025-01-16 16:17:01 +08:00

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_