C에서 구조체의 특정 멤버를 선택하여 인쇄하려고합니다. 나는 그러한 조작을 위해 제안 된 형식이 무엇일까요? 나는 내가 생각할 수있는 거의 모든 것을 시도했다. 구조체의 특정 chunk
멤버로 제한 할 수 없습니다.fread fseek 구조체 멤버가 C에만 있음
fseek(in, sizeof(d.contents.datas.chunk), SEEK_SET);
fread(&ch, 1, 1, in);
fprintf(out, "%02x", (int)(ch & 0x00FF));
모든 구조체 데이터 또는 하나의 문자 만 가져올 수 있습니다. 어떤 이유로 든 데이터도 올바르게 나오지 않습니다. 예를 들어 bytes
은 실제 bytes
이어야하지만 1
으로 나옵니다. 분명히이 구조체의 데이터가 인쇄되는 방식에 실제로 잘못된 점이 있습니다. 빅 엔디안과 리틀 엔디안을 비교할 수 있을까요? 나는 접근하고있는 파일이 빅 엔디안이라는 것을 압니다.
struct chunkInfo
{
int chunkInformation;
int bytes;
union
{
struct
{
long size;
char chunk[1];
} datas;
} contents;
};
#pragma pack (엔디안 무시 중) –
예를 들어 인텔 아키텍처에서 빅 엔디안으로 데이터를 수신하는 경우이를 변환해야합니다. 예를 들어 확인하십시오. 'hton'과'ntoh'. –
일반적으로 네트워크 데이터 전송을 위해 json 또는 xml과 같은 ascii 형식을 사용하는 것이 가장 안전합니다. 보내는 기계가 64 비트 int를 사용하지만 사용자가 32 비트를 사용한다면 어떻게 될까요? 등 –