byte align 때문에 그렇습니다.
pack 시키거나 pad 시키거나하는 꽁수를 쓰는 경우도 있는데,
CPU 도 같을 거란 보장이 없고, OS 도 같을 거란 보장이 없고,
소프트웨어(혹은 컴파일러)가 동일할 거란 보장도 없으므로,
pack 이건 pad 건 좋은 방법이 아닙니다.
또하나 문제가 되는 것은...
struct a {
char a;
char b;
}
라고 했을 때 메모리 상에서 a 와 b 의 위치가 어떻게 되느냐는 겁니다.
네트웍 뿐만 아니라 이기종간 데이터 교환이 필요한 모든 응용에 똑같이 적용되는 문제입니다.
가까운 예로 storage 를 이용한 데이타 교환방식인 파일시스템이 그렇습니다.
구조체에 포인터
구조체에 포인터 방식의 거시기가 없고 두 장비의 바이트 오더가 같다면 전송해도 되겠죠~
자세한건 다음분께서..
byte order 는 byte stream
byte order 는 byte stream 으로 자료를 주고 받아도 마찬가지고요.
byte align 때문에 그렇습니다.
pack 시키거나 pad 시키거나하는 꽁수를 쓰는 경우도 있는데,
CPU 도 같을 거란 보장이 없고, OS 도 같을 거란 보장이 없고,
소프트웨어(혹은 컴파일러)가 동일할 거란 보장도 없으므로,
pack 이건 pad 건 좋은 방법이 아닙니다.
또하나 문제가 되는 것은...
struct a {
char a;
char b;
}
라고 했을 때 메모리 상에서 a 와 b 의 위치가 어떻게 되느냐는 겁니다.
네트웍 뿐만 아니라 이기종간 데이터 교환이 필요한 모든 응용에 똑같이 적용되는 문제입니다.
가까운 예로 storage 를 이용한 데이타 교환방식인 파일시스템이 그렇습니다.
OTL
일반적인 방법이란
일반적인 방법이란 xml 변환 혹은 serialize 하는것 아닐까요?
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
https://xenosi.de/
댓글 달기