【发布时间】:2011-11-08 19:43:51
【问题描述】:
首先,对不起我的英语不好。 我尝试在linux上获取执行文件的内容。但是有一个错误。 而不是显示所有内容。它只显示其中的一部分
我的文件是 b.out : quan@quan-desktop:~/quanrocktest/tuan1$ cat b.out �ELFquan���0�4 4($!44�4�44�4����� …… ... �4�44�4 ETC... b.out 是一个 ELF 文件
我的代码:
#include <stdio.h>
#include "stdlib.h"
int main(){
FILE *file;
char *buffer;
unsigned int fileLen;
//Open file
file = fopen("/home/quan/quanrocktest/a/b.out", "r");
//Get file length
fseek(file, 0, SEEK_END);
fileLen=ftell(file);
fseek(file, 0, SEEK_SET);
//Allocate memory
buffer=(char *)malloc(fileLen+1);
if (!buffer)
{
fprintf(stderr, "Memory error!");
fclose(file);
return 0;
}
//Read file contents into buffer
fread(buffer, fileLen, 1, file);
fclose(file);
printf("len is %d \n",fileLen);
//Do what ever with buffer
printf("%s",buffer);
free(buffer);
返回 0; }
结果:
quan@quan-desktop:~/quanrocktest/a$ g++ init.c
quan@quan-desktop:~/quanrocktest/a$ ./a.out
len 是 8256
�ELFquan���@quan-desktop:~/quanrocktest/a$
a.out 只显示
《精灵泉》
当我使用 vi 或 cat 时,b.out 仍然显示良好
【问题讨论】:
-
无法阅读您问题中的所有字符。您能否编辑问题,并确保所有字符都可读?
-
部分字符没有显示在屏幕上,这只是一个示例。您可以将其理解为我文件中的字符。