read
システムコールを使用してunsigned short
を読む必要があります。 the manpageによれば :Cは読み込みシステムコールを使用してバイトをどのように読み込みますか?
リード()
buf
始まるバッファにファイルディスクリプタfd
からcount
バイトまで読み取ろう。私の場合は
それは65535までの数値を格納することができますので、しかし、私はこのコードを実行すると、unsigned short
は、2バイトのサイズである:たとえば、コマンドラインで
char buf[2];
bytes_read = read(0, buf, 2);
bytes_wrote = write(1, buf, 2);
とタイプを、番号123
の場合は、12
のみを返します。それはバイトを読むのではなく、シンボルですか? 2バイト以上の値を持つ値を2バイトバッファに読み込むにはどうすればよいですか?たとえば、最大値はunsigned short
です。私はK & Rまたはそれに関するマンページには何も見つかりませんでしたので、非常に簡単だと思います。
はい、バイトを読み込みます。 _parse_それらを読んでいない。あなたは最初の2バイトを取得しています。 –
@QPaysTaxesはいターミナルには、多くの異なるシンボルがあります。これはASCIIの解釈のようです! – Tehada
エンコーディングは関係ありません。あなたは '1'、次に' 2'、そして '3'を入力しています。あなたのコードはあなたが書いた最初の2バイトを読み込みます。 0x31の後ろに0x32を続けて数字12として解釈します(便宜上ASCIIを使用します)。 0x31とそれに続く0x32と解釈します。 –