68user's page 掲示板

Prev< No. 4086〜4104> Next  [最新発言に戻る] [過去ログ一覧]
No. 4086 # たらい 2005/01/26 (水) 18:10:01
はじめまして。
いつも「UNIXの部屋」を利用させていただいています。

awkコマンドのところですが、誤字がありましたのでお知らせさせていただきました。
****************************************************************
特殊なパターンとして BEGIN と END がある。BEGIN は最初に実行され、END は最後に実行される。
% ls -l | awl 'BEGIN { print "START!"} {total+=$5; print $9} END {print "size total="total} '
****************************************************************
1つ目のパイプの後の「awk」が「awl」になっています。

「awkのエイリアスです。」なんていわれたら、どうしようもありませんが…。

取り急ぎ、ご連絡までに…

No. 4087 # 68user 2005/01/26 (水) 19:11:43
>>4086 たらい
修正いたしました。ご指摘ありがとうございました。
    http://X68000.q-e-d.net/~68user/unix/pickup?awk

No. 4088 # tansy [URL] 2005/01/27 (木) 04:45:52
ライセンスについて質問です。
このサイトにあるコードはフリーソフトウェアと考えてよいでしょうか。
チュートリアルサイトなのでコードを自由に利用してよいだろうとは思ったのですが、
念のため確認させてください。

具体的にはecho-server-select.cを参考にしながらプログラムを書いたのですが、
将来それをフリーソフトウェアとして配布したいと考えています。
問題ないですよね?
問題あるなら空で書けるように修行してやり直すことになるのですが…。

ちなみに作っているものはこれ
  http://humming.dip.jp/bardic/
でネットゲームのようなものです。

よろしくお願いします。

No. 4089 # 68user 2005/01/27 (木) 13:10:16
>>4088 tansy
> 将来それをフリーソフトウェアとして配布したいと考えています。
> 問題ないですよね?
はい、問題ありません。ただしエラーチェックが甘めなので、それを踏まえた上で
お使いください。


ついでなのでライセンスを明確にしたいと思います。

わたしが書いたプログラムは、特に明記していない場合は修正 BSD ライセンスと
します (現時点で修正 BSD ライセンス以外のライセンスを適用しているプログラム
はありません)。

わたしが書いた文章は、フリーではありません。ただし (言うまでもありませんが)
著作権法における引用は可です。

No. 4090 # tansy [URL] 2005/01/27 (木) 15:53:06
>>4089 68user
修正BSDライセンスであること了解しました。
> ただしエラーチェックが甘めなので、それを踏まえた上でお使いください。
了解です。

ありがとうございました。

No. 4091 # 亜紀 2005/02/06 (日) 14:14:32
はじめまして。今卒業研究に必死に取り組んでいるんですけども、
ソケットプログラミングがよく分かりません・・・

sendやrecvなどを使って、更新されていくデータを一定時間
ずーっと送信、もしくは受信ってできますか?

研究室も誰もいないし、聞けるのはみなさんしかいません。うう。
どうかお願いします。

PS.焦っているので、他の掲示板などでも同様の書き込みをするかもしれません。
      ここが最初ですが、もし他の掲示板から何かいいアドバイスをいただけましたら、
      すぐに反映させていきたいと思います。よろしくお願いします。

No. 4092 # のぷお 2005/02/07 (月) 22:55:00
亜紀さん

質問の内容が漠然としているので、ちょっと答えずらいのですが。。。
一定時間ずっと、送信もしくは受信することはできますよ。
まあ、ソケットはありふれたものなので、インターネット上を検索すれば、
ソースコードの例は簡単に見つかると思いますよ。
ソケット、socket、ソースなどのキーワードで検索すれば簡単に見つかるかも。

焦る気持ちはわかりますが、同じ質問を複数の掲示板に書き込む行為は良く
ないので、やめたほうがいいですね。

では。

No. 4093 # tanaka 2005/02/15 (火) 16:44:32
JAVA から cシェルを実行したいのですが どのように記述すればよいのでしょうか。

Runtime rt = Runtime.getRuntime();
String[] command = {"/root/scripts/t.csh"} ;
Process process = rt.exec(command);

と記述しておりますが、実行できず困っています。

No. 4094 # とも 2005/02/16 (水) 03:03:50
UNIXのシェルスクリプトについて教えて下さい。
OSは、HP-UX11.00です。

ファイル中に存在するある文字列をsedを使用して置換して
いるのですが、sedで置換を行うとき条件を指定して実行する
ことはできるのでしょうか。

id: u=aaaa.bbbb,o=co.jp,o=1234,code=vip
aaaaaa,bbbb,code=vip,code=ip
bbbbb,bbbb
id: u=aaaa.bbbb,o=co.jp,o=1234,code=vip
aaaaaa,bbbb,code=vip,code=ip
bbbbb,bbbb
id: u=aaaa.bbbb,o=co.jp,o=1234,code=vip
aaaaaa,bbbb,code=vip,code=ip
bbbbb,bbbb
id: u=aaaa.bbbb,o=co.jp,o=1234,code=vip

sed 's/code=vip$/code=normal/g' ファイル名
とすると「code=vip」がある行に対して置換が行われます。

先頭が、"id: "から始まる行のみ「code=vip」を「code=normal」に
置換したいのですが、sed1回で可能でしょうか。
それとも、作り込みが必要でしょうか。

No. 4095 # ばんじょう 2005/02/17 (木) 18:20:35
Solaris8のcshについて教えて下さい。

nawkを使用しているのですが、1行での表記が長いので手頃なところで改行
して見易いように複数行にしたいのですが、その場合、これは、1行の処理
ですと認識させたいのですが、どのようにすればよいのですか。

¥、&、$とかつけてみたのですが、「Unmatched '」がでてしまいます。
お願いします。

#!/usr/bin/csh
#

set sys_no = "99"

set aaa=`nawk -v NO=$sys_no -F":" '/^[ \t]*#START/,/^[ \t]*#END/ \
            { if (substr($1,1,1) != "#" && substr($1,1,2) == NO) print $2 }' list.txt`

echo $aaa

No. 4096 # zsh 2005/02/17 (木) 19:00:58
>>4094 とも
sed -e 's/^\(id.*code=\)vip/\1nomal/' file
とか
sed -e '/^id/ { s/code=vip$/code=normal/
}' file
あたりでできます。

>>4095 ばんじょう
「\\」でいけたと思います。
・・・正直cshはやめた方が良いと思いますが・・・

No. 4097 # ばんじょう 2005/02/17 (木) 22:24:13
>4096

>「\\」でいけたと思います。
でやってみましたが無理でした。
動きはしましたが、nawk内の条件が無視され全て取り出されました。
ふと、もう1個ふやしたらどうなるのだろうと、「\\\」でやって
みたところ上手くいきました。いった模様です。
しかし、変ですね。怖い環境、怖いcshだと。

>・・・正直cshはやめた方が良いと思いますが・・・
ということは、shとかbashですか。
Solarisは、bashが多いですが・

No. 4098 # とも 2005/02/17 (木) 22:39:34
>>4096 zsh

>sed -e 's/^\(id.*code=\)vip/\1nomal/' file
では、上手く行きました。

>sed -e '/^id/ { s/code=vip$/code=normal/ }' file
では、
sed: 関数 /^id:/ { s/code=vip$/code=normal/ } はパースできません。
となりました。

No. 4099 # やまげん 2005/02/17 (木) 22:47:30
>> 4096


参考に、sedで使用している
「's/^\(id.*code=\)vip/\1nomal/' 」
「'/^id/ { s/code=vip$/code=normal/ }' 」
の使い方について教えて下さい。

No. 4100 # zsh 2005/02/18 (金) 16:09:22
>>4098 とも
}の前に改行を入れないと動作しません。
(実装しているsedの違いかもしれませんが。)

>>4099 やまげん
説明下手なので、この辺を参考にしてください。
ttp://pegasus.rutgers.edu/~elflord/unix/sed.html

No. 4101 # やまげん 2005/02/19 (土) 15:01:47
>>4100 zsh

>説明下手なので、この辺を参考にしてください。
>ttp://pegasus.rutgers.edu/~elflord/unix/sed.html
英語なんですね。

No. 4102 # zsh 2005/02/21 (月) 09:40:16
>>4101 やまげん
それじゃあ簡単に。

"\("と"\)"で囲まれた部分にマッチした文字列は、
変数に格納され、順番に\1,\2で取り出す事が可能です。

/Pattern/ {
  command
}
でPatternに一致した行に対してcommandを実行します。

こんな感じですかね。
正直、自分の解釈が間違っている可能性があるので、
あまり人に教えることはしないのですが。。。

No. 4103 # 高嶋屋 2005/02/21 (月) 11:03:35
はじめまして、高島屋です。
solarisでC言語にてアプリケーションを作成する際の、1プロセスが可能なファイルオープンのMAX値について教えていただけないでしょうか?
実際にopen可能な、、と言う意味ではなく、「メーカで保障されている」MAX値を調査しています。
利用しているコンパイラは「SunOneStudio8」。
まず、当方で調査した結果を報告致します。

・ANSI規格の規格では8以上とされている。(「新ANSIC言語辞典」技術評論社→コンパイラに対して8以上を保障しなさいと言う意味だと思います)
    ただし、/usr/include/isostdio_iso.hでは、FOPEN_MAX=20と設定されている。(CPU=SPARK)
・solris
limit,sysdefコマンドで確認した所、
limitコマンドでのファイル記述子の最大数は256。
sysdefコマンドのfile descriptorsに関する、"process Resource Limit"の値も共に256。
実際に1プロセスで256ファイル以上をオープンすると、それ以降のファイルオープンが失敗しました。

・その他 システム全体で同時open可能なファイルの最大数があるのかは不明(調査不足)
なお、sysdefコマンドで確認した所、maximum number of process = 30000
maximum processes per user id = 29995の制限値が設定されていました。

ただ、上記はあくまで、実際に設定されている値で、それぞれのメーカーが保障している値ではありません。
SunOneのマニュアルからも最大値の記述は読み取れませんでした。(調査不足?)

Q1.FOPEN_MAXの20と言うのは何に利用されているかご存知ですか?CPUにより異なる様なのですが。。
プロセスを最大数立ち上げた際にオープン出来るファイルの最大数と言う事なのしょうか?


Q2.コンパイラごとに異なるものなのでしょうか?OSやCで決まるものなのでしょうか?
何を基準に(c?solaris?コンパイラ?)マックス値を調査すればよいのでしょう?

Q3.漠然とした質問で申し訳無いのですが、上記の様なファイルオープン数のメーカーからの保障について、どなたかご存知ですか?
    
以上、拙文で申し訳ないのですが、ご存知の方ご教授下さい。

No. 4104 # 68user 2005/02/21 (月) 23:44:19
質問は受け付けないって書いてあるのに、変わった人たちですね。
まぁいいですけど。

> Q1.FOPEN_MAXの20と言うのは何に利用されているかご存知ですか?
Solaris8 の stdio(3) には以下のように記述されています。
      The integer constant FOPEN_MAX specifies the minimum number
      of files that the implementation guarantees can be open
      simultaneously.

JIS X 3010 (C99 相当) には以下のように記述されています。
      FOPEN_MAX は、同時にオープンできることを処理系が保証するファイル
      数の最小値をあらわす整数定数式に展開する。

なお、FOPEN_MAX は最大値ではなく最小値です。「少なくともこれだけは
オープンできる」という値です。


FOPEN_MAX が具体的にどう使われているか、という話であれば、処理系
依存です。たとえば FreeBSD であれば libc において
      static FILE usual[FOPEN_MAX - 3];
などと使われており、リソースを確保しなおすことなくオープンできる
ファイル数が FOPEN_MAX である、という形になっているようです。

Linux などで使われている glibc においては FOPEN_MAX を一切使用して
おらず、意味のない値になっています。Solaris はソースを持ってないので
知りません。

> Q2.コンパイラごとに異なるものなのでしょうか?OSやCで決まる
> ものなのでしょうか?
何がですか? FOPEN_MAX が?

> Q3.漠然とした質問で申し訳無いのですが、上記の様なファイルオープン数の
> メーカーからの保障について、どなたかご存知ですか?
「保証する値」にこだわるのであれば、メーカーに問い合わせるのが
一番かと思います。

Prev< No. 4086〜4104> Next  [最新発言に戻る] [過去ログ一覧]