acl/lib_acl_cpp/include/acl_cpp/stdlib/util.hpp
2017-09-18 18:59:59 +08:00

52 lines
1.4 KiB
C++

#pragma once
#include "../acl_cpp_define.hpp"
namespace acl
{
/**
* 获得上次系统调用出错时的错误号
* @return {int} 错误号
*/
ACL_CPP_API int last_error(void);
/**
* 手工设置错误号
* @param errnum {int} 错误号
*/
ACL_CPP_API void set_error(int errnum);
/**
* 获得上次系统调用出错时的错误描述信息,该函数内部采用了线程局部变量,所以是线程
* 安全的,但使用起来更简单些
* @return {const char *} 返回错误提示信息
*/
ACL_CPP_API const char* last_serror(void);
/**
* 获得上次系统调用出错时的错误描述信息
* @param buf {char*} 存储错误描述信息的内存缓冲区
* @param size {int} buffer 的空间大小
* @return {const char*} 返回的地址应与 buffer 相同
*/
ACL_CPP_API const char* last_serror(char* buf, size_t size);
/**
* 类似于标准C的 strerror, 但该函数是跨平台且是线程安全的,获得对应某个错误
* 号的错误描述信息
* @param errnum {int} 错误号
* @param buf {char*} 存储错误描述信息的内存缓冲区
* @param size {int} buffer 缓冲区的大小
* @return {const char*} 返回的地址应与 buffer 相同
*/
ACL_CPP_API const char* string_error(int errnum, char* buf, size_t size);
ACL_CPP_API int strncasecmp_(const char *s1, const char *s2, size_t n);
ACL_CPP_API void assert_(bool n);
ACL_CPP_API void meter_time(const char *filename, int line, const char *info);
ACL_CPP_API long long get_curr_stamp(void);
ACL_CPP_API double stamp_sub(const struct timeval& from,
const struct timeval& sub);
} // namespace acl