그래서 브라우저를 통해 소켓을 통해 JPEG를 보내고 싶습니다. 하지만 JPEG에서 읽는 데 계속 문제가 있습니다. 내 코드 :문자로 된 JPEG 읽기
FILE* fp = fopen(filename, "rb");
if(fp == NULL)
{
fp = fopen(FILE_404, "r");
} else
{
struct stat fst;
stat(filename, &fst);
unsigned char *blob;
blob = (unsigned char *)malloc(fst.st_size);
fread(blob, 1, fst.st_size, fp);
header->content = (unsigned char*)malloc(fst.st_size);
strcat(header->content, blob);
header->content[fst.st_size+1] = "\0";
header->content_len = fst.st_size;
}
그러나 방울을 인쇄 할 때 모두 얻을 수는 다음과 같습니다 \377\330\377\340
파일이 있지만 : 67,165 바이트 큰. 어떻게해야합니까?
는 어느 쪽도'header-> content' 블록도'blob'이 문자열 그래서 어떻게 사용할 수 없습니다
fread()
을 통해에 성공적으로 읽은 후,blob
의 내용을 인쇄하려면' strcat' 함수? – ouah당신은 완전히 맞습니다 (미안 해요, 몇 시간 동안이 물건을 개발 중입니다, 피곤합니다). 나는 그것을 고쳤지 만 문제는 더 일찍 일어난다. fread가 모든 것을 읽지 않는 것 같습니다. – yrk
하나는 fread()의 반환 값을 확인하지 않은 것입니다. fread()는 반환 된 값을 알려줍니다. 또한 원시 이진 파일이기 때문에 정확히 "인쇄"하고 있습니까? printf()와 같은 문자열 함수는 사용할 수 없습니다. –