プロセスは、値を入力した後にchar bufで送信することによって、PBに2つの整数の値を送信したいとします。 PAとPBが同じマシンにあるとします。 PBは、読み取るバッファに2つの整数の値が含まれていることを認識しています。IPC用のsprintfまたはitoaまたはmemcpy
uint x=1;
uint y=65534;
- ケース1
sprintf(buff,"%d%d",x,y);
Q1に示すように、PAは、チャーBUFに書き込む
- この場合には1とその値を抽出することができるPBする方法及び65534それ以来1,6,5,5,3,4を含む配列を持っています。 sprintf
を使用していますか?
- ケース2
PAバッファへの整数の値を移入しitoa
関数を使用します。 PBはatoi
を使用してバッファから値を抽出します。 itoa
は、各値の後にヌルターミネータを挿入するので、これは可能でなければなりません。
Q2 - PAが4バイトのintサイズの32ビットマシンで実行され、PBが2バイトのintサイズを持つ16ビットマシンで実行されているとします。範囲外をチェックするだけで、自分のコードを移植可能にすることができますか?
Q3 - memcpy
これは別の方法ですか?
Q4 - これはどのようにして行われますか?
宿題......? – thumbmunkeys
人とコミュニケーションしていない限り、ASCIIを使用しないことをお勧めします。これは、データを表現する最もハードウェアに嫌なフォーマットです。 –