アク禁になった人の為にレス代行するスレ★318at ACCUSE
アク禁になった人の為にレス代行するスレ★318 - 暇つぶし2ch230: [´・ω・`] M087204.ppp.dion.ne.jp
12/09/23 22:31:28.92 2radODAg

【依頼に関してのコメントなど】よろしくお願いします
---------------------------------------------------------------------------
【*板名】プログラム
【*スレ名】ネットワークプログラミング相談室 Port28
【*スレのURL】スレリンク(tech板)
【名前欄】678
【メール欄】sage
【*本文:この下にコピペして欲しい文を入れて下さい。以下を本文としてコピペします】
>>715,727(>>669)
(ネットワーク上を流れる)外部データ表現と(OS内部の)内部データ表現との違いを間違って理解している
XDR(eXternal Data presentation)は通信規格だから、
(一般的な)整数型は(OSの違いとは無関係に)32bit固定と明確に仕様が定義されている
(これはC言語上でのデータ型 short/int/long のどれであっても同じで、通信データとしては全て32bit)
そして、long型のOS内部表現では大きさが32bit/64bitとかエンディアンといった差異が
存在するから、それらを吸収させる為に xdr_xxx という変換関数がライブラリとして提供されている
だから「32ビットと64ビットで(通信データの)サイズが異なってしまう」なんてことはありえなくて、
普通は xdr_long を呼ぶコードには何ら修正を加えること無くリコンパイルするだけで終わる

以下は「Solaris 64 ビット開発ガイド」p.64 からの引用(題名でググればPDFで読める)
  XDR ルーチンの xdr_long(3NSL) は問題と思われるかもしれません。しかし、これは
  既存のプロトコルとの互換性を持たせるために従来どおり 32 ビットとして取り扱われます。
  64 ビットバージョンのルーチンが 32 ビットに格納できない long 値を
  コード化するように要求された場合、そのコード化処理は失敗します。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch