我得到了一个二进制文件,我需要使用C和Linux将其转换为可读的文本文件。下面的代码部分来自此站点。
我尝试了几种发现的算法,但似乎没有用。
searchNum = 10
with open("num.txt", "r") as f:
list = [int(line.strip()) for line in f.readlines()]
count = list.count(searchNum)
答案 0 :(得分:0)
您的代码将 memdb 的二进制内容精确复制到 output.out 。完全不转换为可读文本。请注意,while(!feof(input))
不是测试文件结尾的正确方法,但是在您的特定情况下,这不会造成问题。
您的目标不明确:
这是产生十六进制转储的替代方法:
/* copy binary file memdb as hex, returns the number of bytes or negative for error */
int copy_memdb(void) {
FILE *input;
FILE *output;
int c, count;
input = fopen("memdb", "rb");
if (input == NULL) {
return -1;
}
output = fopen("output.out", "w");
if (output == NULL) {
fclose(input);
return -2;
}
count = 0;
while ((c = getc(input)) != EOF) {
if (count++ % 16 == 0) {
putc('\n', output);
} else {
putc(' ', output);
}
fprintf(%02X", c);
}
if (count > 0)
putc('\n', output);
fclose(input);
fclose(output);
return count;
}