bzero(buffer, MAXBUF);
fgets(buffer, fsize, file);
printf("%s\n", buffer);
send(sockfd, buffer, fsize, 0);
file이라는 FILE* 에서 그 파일의 크기만큼 buffer에 읽어와서
그 내용확인차 출력하고, 그 내용을 보내는 코드를 짰는데,
저기서 buffer에 입력되어있는값이 "ELF" 이게 다임...
여기서 file에 열려있는 파일은, 다음 코드를 gcc를 통해 컴파일한 실행파일을 "rb"모드로 읽은 파일임
#include<stdio.h>
int main(void)
{
int a, i;
a = 0;
for (i = 0 ; i <= 100000; i++)
a = (a+i);
a = a/10000;
printf("%d\n", a);
return 0;
}
buffer의 크기는 충분히 확보해 둔 상태..
도데체 뭐가 문제일까여..?
linux 바이너리를 넘긴거야? 그걸 스트링으로 찍으면 앞대가리 ELF 헤더 뒤의 코드들이 무시될듯
fgets 부터 문제겠는데?
ㄴ 그럼 어떻게 해야됨?
하나씩 배열에서 꺼내서 16진수로 찍어보시든지~
읽을때도 fread~
파일 딱 열어서 memcpy로 버퍼에다가 딱 복사시키고 전송하면됨