#include "../head.h"
/*
* 去掉代码中的dbg整行打印信息
*/
int main(int agrc, char **argv)
{
// get_variable_size();
if(agrc != 2) dbge("%d", agrc);
if(mkdir("out", 0777) && errno != 17) dbge();
char outfile[50];
sprintf(outfile, "out/%s", argv[1]);
dbg("%s %s", argv[1], outfile);
int ofd, ifd;
if(-1 == (ofd = open(outfile, 2 | O_CREAT | O_TRUNC))) dbge();
if(-1 == (ifd = open(argv[1], 2))) dbge();
struct stat stat;
if(fstat(ifd, &stat)) dbge();
dbg("%ld %ldk", stat.st_size, stat.st_size >> 10);
char *buf = malloc(stat.st_size);
if(NULL == buf) dbge();
if(-1 == read(ifd, buf, stat.st_size)) dbge();
char *p = buf;
char *start = buf;
char *end = p + stat.st_size;
do {
if('d' == *p) {
if(0x28676264 == *I(p)) {
if(-1 == write(ofd, start, p - start)) dbge();
p += 4;
while(*++p != '\n');
start = ++p;
}
}
} while(++p < end);
if(p > start)
if(-1 == write(ofd, start, p - start)) dbge();
free(buf);
dbg("转换成功");
return 0;
}