|
はじめまして、くろうです C言語初心者がいきなりソケットプログラムを作っているのですが どんな本を見ても、いまいちわからないことがあるので質問します。 UNIXで最大1Mハ゛イトの可変ファイルをソケットで受信しているのですが ソケットで受信する時、recvのバッファーのサイズはどのくらいとるのが適正値なのでしょう。 char buf[4096]; rtncd = recv(sockid,buf,sizeof(buf),0); 受信したテ゛ータは連結編集してます。 よろしくおねがいします。 |
|
>>2703 くろう 100 バイト単位で値を変えて、転送速度を計りましょう。 それが面倒なら 4096 でいいんじゃないでしょうか。 # 僕は面倒なので 4096。 |
|
皆さんはじめまして。ゆくまといいます。 いつも「UNIXの部屋」を活用させて頂いております。 現在、UNIXの*について調べているのですが、 もしご存知の方がいらっしゃったら教えていただけますでしょうか? たとえば、 >ls file01.dat file02.dat >cat * としたとき、catの表示順は必ず、 file01.dat の次に file02.dat である(つまりソート順)、と決まっているのでしょうか? もしくは不定なのでしょうか。 よろしくお願いいたします。 |
|
>>2705 ゆくま > file01.dat の次に file02.dat である(つまりソート順)、 > と決まっているのでしょうか? はい、ソートされます。sh・csh・tcsh・bash・zsh・ksh など全てのシェルでソートされるはずです。 ただし cat *2* *1* だと file02.dat file01.dat の 順になります。 |
|
>>2706 68user レスありがとうございます。 これってやはり考えるまでも無い当たり前のことなんですかね。 これまで何年かUNIXを使ってきて、そうだとは思っていた のですが、改めて調べてみたところ、そのことを明記している ようなドキュメントを見つけることができなかったのです。 おそらく何らかのパブリックなドキュメントには明記してある ことだとは思うのですが。。。 ご存知の方はいらっしゃいますでしょうか? |
|
>2707 > おそらく何らかのパブリックなドキュメントには明記してある > ことだとは思うのですが。。。 手元にあるマニュアルを調べてみました。 FreeBSD 4.5-RELEASE の tcsh(1) ファイル名置換 単語が `*', `?', `[', `{' のいずれかの文字を含む場合、また は 先頭が `~' で始まる場合、その単語はファイル名置換 (ある いはグロブ (globbing) と呼ばれます) の候補になります。この ような単語をパターン (グロブパターン) と見なし、そのパター ンにマッチするファイル名のリストをアルファベット順で整列し たもので置き換えます。 FreeBSD 4.5-RELEASE の csh(1) ・・・発見できず Solaris2.6 の sh(1) [ファイル名の生成] コマンド実行に先立ち、各コマンドワードは、 *、?、および [ を 含んでいないかチェックされます。これらの文字のいずれかがある と、そのワードはパターンとみなされます。このワードは、パター ンと一致する、辞書編集方式の順にソートされたファイル名に置換 されます。 Solaris2.6 の csh(1) ・・・発見できず bash-2.0.5a Pathname Expansion After word splitting, unless the -f option has been set, bash scans each word for the characters *, ?, and [. If one of these characters appears, then the word is regarded as a pattern, and replaced with an alphabetically sorted list of file names matching the pattern. |