📄 macros.h
字号:
/* macros.h - some useful macros ----------------------------- Copyright (C) 2003 by Michal Zalewski <lcamtuf@coredump.cx> */#ifndef _HAVE_MACROS_H#define _HAVE_MACROS_H#define ckopen(fn,mode...) ({ \ _s32 fd=open(fn,mode); \ if ((fd)<0) fatal("[-] Couldn't open %s: %s\n", (fn), strerror(errno)); \ fd; \ })#define cktemp() ({ \ _u8 tmp[]=".tmp-2c-XXXXXXXX"; \ _s32 fd=mkstemp(tmp); \ if ((fd)<0) fatal("[-] mkstemp failed: %s\n", strerror(errno)); \ unlink(tmp); \ fd; \ })#define ckdup(fd) ({ \ _s32 ret=dup(fd); \ if ((ret)<0) fatal("[-] dup() failed: %s\n", strerror(errno)); \ fd; \ })#define ckwrite(fd,buf,len) do { \ if ( write((fd),(buf),(len)) != (len)) \ fatal("[-] Write failed: %s\n", strerror(errno)); \ } while(0)#define ckread(fd,buf,len) do { \ if ( read((fd),(buf),(len)) != (len)) \ fatal("[-] Short read!\n"); \ } while(0)#define getlen(fd) ({ \ _u32 v; \ v=lseek((fd),0,SEEK_END); \ if (v==(_u32)-1) fatal("[-] Can't get file size: %s\n", \ strerror(errno)); \ if (!v) fatal("[-] Empty or special input file.\n"); \ if (v < MIN_SIZE) fatal("[-] Input file must be at least %u bytes" \ " long.\n",MIN_SIZE); \ lseek((fd),0,SEEK_SET); \ v; \ })#define rew(fd) lseek(fd,0,SEEK_SET)#define debug(x...) fprintf(stderr,x)#define fatal(x...) do { fprintf(stderr,x); exit(1); } while (0)#endif /* ! _HAVE_MACROS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -