⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccache.h

📁 ccache 是一个快速的编译器缓存。当您编译一个程序的时候
💻 H
字号:
#define CCACHE_VERSION "2.3"#include "config.h"#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <errno.h>#include <sys/stat.h>#include <sys/types.h>#include <sys/wait.h>#include <sys/mman.h>#include <sys/file.h>#include <fcntl.h>#include <time.h>#include <string.h>#include <ctype.h>#include <utime.h>#include <stdarg.h>#include <dirent.h>#include <limits.h>#define STATUS_NOTFOUND 3#define STATUS_FATAL 4#define STATUS_NOCACHE 5#define MYNAME "ccache"#define LIMIT_MULTIPLE 0.8/* default maximum cache size */#ifndef DEFAULT_MAXSIZE#define DEFAULT_MAXSIZE (1000*1000)#endifenum stats {	STATS_NONE=0,	STATS_STDOUT,	STATS_STATUS,	STATS_ERROR,	STATS_TOCACHE,	STATS_PREPROCESSOR,	STATS_COMPILER,	STATS_MISSING,	STATS_CACHED,	STATS_ARGS,	STATS_LINK,	STATS_NUMFILES,	STATS_TOTALSIZE,	STATS_MAXFILES,	STATS_MAXSIZE,	STATS_NOTC,	STATS_DEVICE,	STATS_NOINPUT,	STATS_MULTIPLE,	STATS_CONFTEST,	STATS_UNSUPPORTED,	STATS_OUTSTDOUT,	STATS_END};typedef unsigned uint32;#include "mdfour.h"void hash_start(void);void hash_string(const char *s);void hash_int(int x);void hash_file(const char *fname);char *hash_result(void);void hash_buffer(const char *s, int len);void cc_log(const char *format, ...);void fatal(const char *msg);void copy_fd(int fd_in, int fd_out);int copy_file(const char *src, const char *dest);int create_dir(const char *dir);void x_asprintf(char **ptr, const char *format, ...);char *x_strdup(const char *s);void *x_realloc(void *ptr, size_t size);void *x_malloc(size_t size);void traverse(const char *dir, void (*fn)(const char *, struct stat *));char *str_basename(const char *s);char *dirname(char *s);int lock_fd(int fd);size_t file_size(struct stat *st);int safe_open(const char *fname);char *x_realpath(const char *path);char *gnu_getcwd(void);int create_empty_file(const char *fname);void stats_update(enum stats stat);void stats_zero(void);void stats_summary(void);void stats_tocache(size_t size);void stats_read(const char *stats_file, unsigned counters[STATS_END]);void stats_set_limits(long maxfiles, long maxsize);size_t value_units(const char *s);void display_size(unsigned v);void stats_set_sizes(const char *dir, size_t num_files, size_t total_size);int unify_hash(const char *fname);#ifndef HAVE_VASPRINTFint vasprintf(char **, const char *, va_list );#endif#ifndef HAVE_ASPRINTFint asprintf(char **ptr, const char *format, ...);#endif#ifndef HAVE_SNPRINTFint snprintf(char *,size_t ,const char *, ...);#endifvoid cleanup_dir(const char *dir, size_t maxfiles, size_t maxsize);void cleanup_all(const char *dir);void wipe_all(const char *dir);int execute(char **argv, 	    const char *path_stdout,	    const char *path_stderr);char *find_executable(const char *name, const char *exclude_name);typedef struct {	char **argv;	int argc;} ARGS;ARGS *args_init(int , char **);void args_add(ARGS *args, const char *s);void args_add_prefix(ARGS *args, const char *s);void args_pop(ARGS *args, int n);void args_strip(ARGS *args, const char *prefix);void args_remove_first(ARGS *args);#if HAVE_COMPAR_FN_T#define COMPAR_FN_T __compar_fn_t#elsetypedef int (*COMPAR_FN_T)(const void *, const void *);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -