68user's page 掲示板

Prev< No. 4099〜4104> Next  [最新発言に戻る] [過去ログ一覧]
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. 4099〜4104> Next  [最新発言に戻る] [過去ログ一覧]