| | |
| | | #include <sched.h> |
| | | |
| | | #include <sys/time.h> |
| | | #include <sys/syscall.h> |
| | | #include <sys/types.h> |
| | | #include <sys/wait.h> |
| | | #include <sys/stat.h> |
| | |
| | | */ |
| | | #include <stdint.h> |
| | | #include <assert.h> |
| | | |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | |
| | | #include <map> |
| | | #include <set> |
| | | |
| | | #include <functional> |
| | | #include <thread> |
| | | |
| | | #endif |
| | | |
| | | #include "usg_typedef.h" |
| | | |
| | | #ifdef __cplusplus |
| | | extern "C" { |
| | | #endif |
| | | |
| | | /* Signal wrappers */ |
| | | typedef void handler_t(int); |
| | | handler_t *Signal(int signum, handler_t *handler); |
| | | |
| | | |
| | | |
| | | /* Our own error-handling functions */ |
| | | |
| | |
| | | char *rtrim(char *str, const char *seps); |
| | | char *trim(char *str, const char *seps); |
| | | |
| | | char * str_join( const char *seperator, const char *first...); |
| | | char ** str_split(const char *str, const char *delim, int *arr_len); |
| | | char * array_join(char * const arr[], const char *seperator); |
| | | char * path_join(const char *path, ...); |
| | | // 反向查询 |
| | | char *strstr_r(char *str, char * needle); |
| | | // 递归创建文件夹 |
| | | int mkdir_r(const char *pathname, mode_t mode); |
| | | |
| | | int mkdiratfd_r(int dirfd, const char *pathname, mode_t mode); |
| | | int mkdirat_r(const char * dir, const char *pathname, mode_t mode); |
| | | |
| | | |
| | | static inline int |
| | | itoa(int num, char *str) |
| | | strtoi(int num, char *str) |
| | | { |
| | | return sprintf(str, "%d", num); |
| | | |
| | | } |
| | | |
| | | static inline int |
| | | ftoa(float num, char *str) |
| | | { |
| | | return sprintf(str, "%f", num); |
| | | |
| | | } |
| | | |
| | | |
| | | |