defs.h (1184B)
1 #include <sys/stat.h> 2 #include <unistd.h> 3 #include <sys/sysmacros.h> 4 #include <fcntl.h> 5 #include <string.h> 6 #include <stdlib.h> 7 8 void print_file(char * path, mode_t mode, char * text) { 9 int fd = open(path, O_CREAT | O_WRONLY, mode); 10 char *p, *nxt; 11 char b[1]; 12 if(fd >=0) { 13 p = text; 14 while(nxt = strchr(p, '\\')) { 15 char upper = nxt[2]; 16 char lower = nxt[3]; 17 upper = (upper>'9') ? ((upper | 32) - 'a' + 10) : (upper - '0'); 18 lower = (lower>'9') ? ((lower | 32) - 'a' + 10) : (lower - '0'); 19 b[0] = (upper << 4) + lower; 20 write(fd, p, nxt-p); 21 write(fd, b, 1); 22 p=nxt+4; 23 } 24 write(fd, p, strlen(p)); 25 close(fd); 26 } 27 } 28 29 30 31 #define PRINTFILE(path, mode, text) print_file(path, (mode_t) mode, text) 32 #define MKDIR(path, mode) mkdir(path, mode) 33 #define MKNOD_C(path, mode, major,minor) mknod(path, mode | S_IFCHR, makedev(major, minor)) 34 #define MKNOD_B(path, mode, major,minor) mknod(path, mode | S_IFBLK, makedev(major, minor)) 35 #define LN_S(target, path) (void)symlink(target, path) 36 #define LN(target, path) link(target, path) 37 #define MKNOD_P(path, mode) mkfifo(path, mode) 38 #define CHOWN(path, uid, gid) chown(path, uid, gid)