[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 12:29 / Filesize : 215 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

UNIXプログラミング質問すれ Part5



1 名前:名無し募集中。。。 [05/01/15 02:18:37]
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド

前スレ
Part4 pc5.2ch.net/test/read.cgi/tech/1095843584/
Part3 pc5.2ch.net/test/read.cgi/tech/1085930894/
Part2 pc5.2ch.net/test/read.cgi/tech/1055110889/
Part1 pc2.2ch.net/tech/kako/992/992057422.html

Part3のミラー
makimo.to/2ch/pc5_tech/1085/1085930894.html
Part2のミラー
makimo.to/2ch/pc5_tech/1055/1055110889.html

関連スレ
Cygwin使っている人いますか? その13 (UNIX板)
pc5.2ch.net/test/read.cgi/unix/1099157755/
Cygwin使っている人いますか? 3 (Windows板)
pc5.2ch.net/test/read.cgi/win/1090131123/

関連板
pc5.2ch.net/unix/
pc5.2ch.net/linux/


686 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 21:37:03 ]
Windowsみたいにcch埋め込みして自動でデバッガ起動とかできないの?

687 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 21:47:46 ]
core吐いたら、そこからデバッグを再開出来る気もする

688 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 00:02:56 ]
>>686
こんな感じでいいのか?
以下を実行すると、自身を対象にgdbのウィンドウが立ち上がる。
char pidbuf[20];
snprintf(pidbuf, sizeof pidbuf, "%d", getpid());
if (fork() == 0)
   execlp("xterm", "xterm", "-e", "gdb", argv[0], pidbuf, NULL);
sleep(5); /* wait for gdb */
かなーりいい加減な実装だけど。


689 名前:デフォルトの名無しさん [2005/04/06(水) 10:45:22 ]
Unixプログラミングを詳しく
網羅した質の高いサイトを
この俺に教えてください

690 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 11:05:39 ]
つ ttp://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_toc.html

691 名前:デフォルトの名無しさん [2005/04/06(水) 15:24:06 ]
CSVをパースするライブラリくれ
書くのめんどい

つーか、どう考えても世の中に大量にあるだろそんな汎用ライブラリ
どうしてgoogleで引っかからないんだこれ
だれかの陰謀か? 宇宙人?

692 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 15:26:47 ]
>>691
perl >>>>>>>>>>>>>>>>>>>> ruby
search.cpan.org/search?query=csv&mode=all

693 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 16:41:41 ]
> perl >>>>>>>>>>>>>>>>>>>> ruby
> search.cpan.org/search?query=csv&mode=all

まぬけですね

694 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 17:24:05 ]
> > perl >>>>>>>>>>>>>>>>>>>> ruby
> > search.cpan.org/search?query=csv&mode=all
>
> まぬけですね

まぬけですね



695 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 17:36:22 ]
Cでくれ

696 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 17:52:29 ]
一発動かすだけみたいなやつなら perl で十分だろうし、
そうでないなら...

> 691 名前:デフォルトの名無しさん[] 投稿日:2005/04/06(水) 15:24:06
> CSVをパースするライブラリくれ

> 695 名前:デフォルトの名無しさん[sage] 投稿日:2005/04/06(水) 17:36:22
> Cでくれ

この間になんぼでも書けるだろう。

697 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 18:28:29 ]
C--  (C Decre)

698 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 21:04:08 ]
>>691
何故みつからないかというと、みんなが納得する"CSV"という
名前のフォーマットは存在しないからです
標準化されていない悲しさよ

699 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 21:24:12 ]
そんなことなかろう。
google で
"comma separated value" parse library
を検索すると見つかるぞ。
単に探し方が悪いだけだと見た。


700 名前:デフォルトの名無しさん [2005/04/06(水) 23:00:19 ]
CSVって、
・フィールド,で区切られている。
・#から改行までは無視。
・,#をデータに入れたい時は、"tell your #, please!"とクォート。
・レコードは改行で区切られている。
が典型的かな。

>>698
色々と問題が起きそうなのは、
・改行コード。
・ISO-2022-JPの様な左面の文字集合切り替えのある場合。
かな。


701 名前:デフォルトの名無しさん mailto:sage [2005/04/06(水) 23:08:41 ]
>>700
> ・,#をデータに入れたい時は、"tell your #, please!"とクォート。
マジかよ
そんなエスケープ初めて聞いた

702 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 09:11:15 ]
CSV

・1行で1レコード。
・コンマ「,」をデリミタとして値を区切る。
・値にコンマが含まれているときにはダブルクォート「”」で括る。
・値にダブルクォートが含まれているときは「””」と2重にする。


多少の方言はあるけど、だいたいこんなんが基本。
というのが漏れの理解。

703 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 09:41:22 ]
値に「"」が含まれていたら「''」でクォートとか、「\」でエスケープとか、
文字列フィールドに数字しかないときは「'」が先行するとか、
微妙にいやらしい方言が多いんだよね。

704 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 10:12:33 ]
だからライブラリが無いw



705 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 12:35:08 ]
""の中に改行が含まれるケースもある

1,"abc","def",ghi,1111
2,"abc","This is a quoted
string.",def,234
3,"abc
def","hoghoge",aaa,234

みたいな

706 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 14:22:07 ]
>>705
lex 辺りでアナライザーはかせりゃ, 悩むほどのもんじゃねぇだろ?
あとは, yylex 呼ぶループ書くだけ.


707 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 14:30:47 ]
この程度、lex 使わずに手書きしても全然たいしたことない。
この程度が書けないような香具師は、Cを使うのはやめて、
Java とか Perl とか Python とか Ruby とか VB に転向すべき。

708 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 14:32:23 ]
Perl なら
ttp://www.din.or.jp/~ohzaki/perl.htm#CSV2Values
PHP なら
ttp://jp.php.net/manual/ja/function.fgetcsv.php
があるけどね

709 名前:デフォルトの名無しさん [2005/04/07(木) 15:00:15 ]
メールサーバでReceived:の項にJSTなどとタイムゾーンが文字で入りますが、あれは取得できる物なのでしょうか?
それとも、メールサーバのプログラムの中にそのようなテーブルがあるのでしょうか?

710 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 15:02:40 ]
>>707
> この程度、lex 使わずに手書きしても全然たいしたことない。
ゴリゴリ手書きして遅いルーチンを書くのはいとも簡単だけど、
(f)lexと同等かそれ以上に高速なものにしようとすると結構大変かも。


711 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 15:04:59 ]
>>709
echo $TZ

712 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 15:06:37 ]
echo OTZ

713 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 15:36:01 ]
>>710
トークンの種類が非常に多く、DFAのメリットが効いてくる
ような場合なら、確かに (f)lexの方が速くなるが、この例
だと共通プレフィックスになるような文字列は全くないので、
まともなプログラマが書けば、どう転んでも手書きの方が速い。
もちろん、まともじゃないプログラマなら話は全然別。

714 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 16:01:55 ]
>>713
へっ?字句解析でDFAの表引きが効率向上に役立つ割合なんてほんの僅かです
が。字句解析器生成が手書きよりもうれしいのは、まず第一にバッファリング
(と先読み管理)をそれなりにきちんとやってくれるからですけど。もちろんき
ちんと最適化したマニュアルの解析器の方がバッファリングも速いけど、それ
はそれで「どう転んでも」速くなるほど自明じゃない。




715 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 16:12:37 ]
うーん、ほとんどの言語は、そもそもそんな高度な
バッファリングなんていらないでしょ? 一文字バッ
ファリング、すなわち ungetc() で十分なことが
多いと思うけど。そりゃたまには、そうじゃない
変態文法もあるけどさあ。
今回の CSV も ungetc() で十分なので、バッファ
リングで遅くなる要素は、まったくないと思うけど?

716 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 18:08:46 ]
おまいらは読込速度が問題になる程
大量の CSV を読もうとしてるのか…ッ!

こないだいたけどね。
「いやー Excel で開けないくらいでっかくなっちゃいましたよハッハッハ」
とかいうから、行数カウントしてみたら 1200万行。

717 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 18:54:46 ]
そこまで多くなったらDB使えと小一時間(ry

718 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 20:36:51 ]
CSVやめてS式にしようぜ

719 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 21:00:27 ]
字句解析器がバッファリングをするって何の話だよ??

720 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 21:21:46 ]
UNIXプログラミングに関係ないはなししはよそでおねがいします。

721 名前:デフォルトの名無しさん mailto:sage [2005/04/07(木) 21:53:30 ]
XMLに決まってんジャンww

722 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 00:09:41 ]
LALRのLAじゃないの?>バッファリング

723 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 00:40:39 ]
LALR使ってるのはlexじゃなくてyaccでそ。

724 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 01:39:56 ]
Unix でプログラミングなら, あるもの使えば?
車輪の再発明の必要もないし...
ってな, つもりで >>706 を書いたんだが, 妙なことになってるしorz

>>720
> UNIXプログラミングに関係ないはなししはよそでおねがいします。
おもいっきり, UNIXプログラミングの*はなしし*だと思うが...
つか, UNIXプログラミングの*はなしし*をすれば, この程度は普通
だと思うぞ.




725 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 03:10:14 ]
>>720 はCSVがUNIXに関係ないと思ってる香具師


726 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 03:38:49 ]
>>709
ftp://elsie.nci.nih.gov/pub/tzdata2005h.tar.gz

727 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 03:39:31 ]
>>709
david.tribble.com/text/c0xtimezone.html

728 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 09:32:37 ]
>>725
関係無いだろ

729 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 11:46:01 ]
yacc/lexがなきゃCSV も読めないのか、ここの連中は(笑)
火炎放射器でタバコに火を付けるってのはこういうのを言うのかね。

730 名前:691 [2005/04/08(金) 13:46:41 ]
そういうのを自分で作るのが面倒だという話なんだ
誰かが作ったものがそこらに転がってるなら
火炎放射器でもなんでも使うよ。

731 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 14:42:40 ]
cut(1) ですむところを awk や perl でやったりもするけど別にええやん

732 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 14:50:36 ]
awkは兎も角、perlは…
まぁいいか。

>>730
火炎放射器使うくらいなら私は自分で火を熾すよ。

733 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 14:58:36 ]
>>732
> 火炎放射器使うくらいなら私は自分で火を熾すよ。
野蛮だなw

734 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 15:14:19 ]
火炎放射器を使う方がむしろ野蛮だと思いまつ。
つうか、これぐらい単純な処理だと、lex使う方
がむしろ面倒だと思う。



735 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 15:50:40 ]
簡潔な方法が正解かと

736 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 16:11:18 ]
simple is beauty が UNIX

737 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 18:39:06 ]
なんだよお前らそんなに車輪作りたいのか?
おれはやだぜ

738 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 18:50:53 ]
任意個の整数の合計を求めるライブラリくれ
書くのめんどい

つーか、どう考えても世の中に大量にあるだろそんな汎用ライブラリ
どうしてgoogleで引っかからないんだこれ
だれかの陰謀か? 宇宙人?


739 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 18:55:42 ]
そんなのライブラるまでもないからだろ

740 名前:部外者でけどね mailto:sage [2005/04/08(金) 19:24:44 ]
こんなのは setjump / longjump のいい練習になるかな。遊びでつくてみよ。

741 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 19:32:59 ]
>>740
整数の合計を求めるのにsetjump/longjump?

>>739, >>738
std::accumulate()

742 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 19:39:11 ]
Cでくれ

743 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 20:18:25 ]
>>738=740はただの初心者

744 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 20:23:22 ]
#define goukei(arr) { int i; extern int g_goukei; for(i=0, g_goukei; i<sizeof(arr)/sizeof(arr[0]); i++) g_goukei+=arr[i]; }



745 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 20:27:16 ]
UNIXでまともな言語ってJavaぐらいしかない

746 名前:デフォルトの名無しさん mailto:sage [2005/04/08(金) 23:34:30 ]
はつみみです

747 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 18:06:28 ]
>>737
自分の回りに車輪が見当たらなければ作るしかねーだろが。

748 名前:エラー処理ブッチご容赦 mailto:sage [2005/04/10(日) 23:57:43 ]
>>740
#include <setjmp.h>
#include <stdio.h>

void acc1(int n, int x, jmp_buf env) {
  if (n == 0) { longjmp(env, x); }
  else { acc1(n - 1, n + x, env); }
}

int acc(int n) {
  jmp_buf env; int x;
  if (n == 0) { return 0;}
  else if (x = setjmp(env)) { return x; }
  else { acc1(n, 0, env); }
}

int main(int argc, char *argv[]) {
  printf("%d\n", acc(atoi(argv[1])));
}


749 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 08:01:46 ]
誰か、>748が何をしたいのか教えてくれ。

750 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 08:30:25 ]
>>749
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char ** argv) {
printf("%d\n", atoi(argv[1]) * (atoi(argv[1]) + 1) / 2);
return 0;
}


751 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 09:27:35 ]
やあおまいら。C言語の勉強ははかどってるかね?

752 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 09:39:22 ]
>>750
それのどこが「任意個の整数の合計」なんだか。
つーか、>740=>748が阿呆なだけか。

753 名前:仕様書無しさん mailto:sage [2005/04/19(火) 00:40:02 ]
>>740
setjmp 使ってなくてすまん。

int
summers (int n, ...)
{
 va_list ap;
 int i = 0, sum = 0;

 va_start (ap, n);
 while (i++ < n)
  sum += va_arg (ap, int);
 va_end (ap);

 return sum;
}


754 名前:デフォルトの名無しさん mailto:sage [2005/04/19(火) 20:26:29 ]
だめだよぉ
setjmp使わなきゃ



755 名前:デフォルトの名無しさん [2005/04/21(木) 15:45:47 ]
Linux です.
ある実行ファイルを実行している最中で,
このファイルを open することはできますか?


756 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 15:48:58 ]
>>755
自分で試せ。

757 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 15:50:00 ]
>>755
こんにちはLinuxさん

758 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 15:50:17 ]
>>755
このファイルとは、実行中の実行ファイルのことでしょうか。
それなら制限つきでopenできるはずです。

759 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 15:56:14 ]
>>758
制限って?

760 名前:755 [2005/04/21(木) 16:13:06 ]
説明が足りませんでした

ある実行可能ファイルを open したところ
失敗して,strerror(errno) したところ

Text file busy

とでるんです(バイナリファイルなのに…)

これはそのファイルが実行中と解釈していいのでしょうか?

761 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 16:38:39 ]
>>760
LinuxさんはどんなUNIXを使ってらっしゃるんで?

762 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 17:05:16 ]
書き込みモードで開こうとしてない?

あと text はコードというような意味。
バイナリファイル/テキストファイルというような区別はUnixにはない。

使用中なのは確かだけど実行中かどうかは知らん。

763 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 17:07:06 ]
Text file busy どこで拾ってきたLinuxなんだろ

764 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 17:15:21 ]
少なくとも BSD 系では errno 26 は "Text file busy."



765 名前:755 [2005/04/21(木) 17:18:53 ]
いろいろどーもす
参考になりますた

> errno 26 は "Text file busy."

Linux でも同様です

766 名前:758 mailto:sage [2005/04/21(木) 18:28:40 ]
>>759
既に答えが出ているからいいよね。
fopen("実行モジュール", "w");
とすると楽しいことになる。

767 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 20:41:01 ]
>>766
そんなもん想定の範囲内だが?

768 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 20:47:43 ]
楽しかった!
もっとやって!

769 名前:デフォルトの名無しさん [2005/04/21(木) 23:40:28 ]
Windowsのdllやexeは使用中に更新出来ないが
UNIXの実行ファイルは更新可能

770 名前:デフォルトの名無しさん mailto:sage [2005/04/21(木) 23:43:56 ]
実行中に削除って…なんか指令を伝えた後に爆発するレコードみたいだな

771 名前:デフォルトの名無しさん mailto:sage [2005/04/22(金) 00:20:08 ]
プロセス終了時にコア吐くですよ。

772 名前:__ mailto:sage [2005/04/22(金) 00:40:24 ]
>>760
んー、こういうことかな?

#include <stdio.h>

int
main (int argc, char **argv)
{
 FILE *fp;

 if ((fp = fopen (argv[0], "w")) == NULL)
  perror ("fopen"), exit (1);

 fclose (fp);

 return 0;
}

$ gcc -Wall -o Text Text.c
$ ./Text
fopen: Text file busy
$

773 名前:デフォルトの名無しさん mailto:sage [2005/04/22(金) 09:39:12 ]
>>772
良い例です(笑)。細かな事ですが、コマンド名には大文字を入れないのが慣習です

774 名前:デフォルトの名無しさん [2005/04/22(金) 11:36:45 ]
select でパイプからの入力待ちをしたのですが
待ち時間を 10 秒とかにしているのに
すぐに 0 が返ってきます

時間切れ以外に 0 が返ってくる場合はありえるのでしょうか?

man select には時間切れと書いていますが



775 名前:デフォルトの名無しさん mailto:sage [2005/04/22(金) 11:54:38 ]
タイムアウトの指定の仕方が間違っている!(w

776 名前:デフォルトの名無しさん mailto:sage [2005/04/22(金) 12:18:55 ]
>>774
待ち時間の設定から呼び出しまで辺りのソースを晒して味噌。

777 名前:デフォルトの名無しさん [2005/04/22(金) 20:23:18 ]
会社のソースなので外部に持ち出せません
契約違反になります

778 名前:デフォルトの名無しさん mailto:sage [2005/04/22(金) 20:26:26 ]
バイバイ

779 名前:__ mailto:sage [2005/04/22(金) 20:54:02 ]
>>777
へたれよのぅ。


780 名前:デフォルトの名無しさん mailto:sage [2005/04/23(土) 05:05:53 ]
それ以前にそんな奴が2chで質問するなと。


781 名前:デフォルトの名無しさん [2005/04/25(月) 11:15:17 ]
とあるプログラムをつくっていて

(1) Redhat 7.1
(2) Redhat EL WS

で動作が違いました.
すでに実行中のファイルを書きこみ専用で
open しようとしたときに
(1)では成功,(2)では失敗します.

このようなことはありえますでしょうか?
これは OS 自体の設定の違いによって起こるものなのでしょうか?

また,ファイルパスを指定して,
それが実行中かどうかを知る方法(もちプログラムの中で)は
ありますか?


782 名前:デフォルトの名無しさん mailto:sage [2005/04/25(月) 11:54:35 ]
その辺はLinux板だなあ。UNIX一般の問題じゃないから。

execve(2)した時の、O_EXEC, MAP_DENYWRITE関係の設定が変ったんだろ。
書けるとsecurity holeになるからね。十分あり得る。

$ cat /proc/プロセスID/maps

してみてね。



783 名前:デフォルトの名無しさん mailto:sage [2005/04/25(月) 12:42:32 ]
>>782
本当にそうなら、これでまたひとつWindowsに近づいたな。

784 名前:781 [2005/04/25(月) 12:48:45 ]
失礼しますた
Linux 板にいてきます



785 名前:782 mailto:sage [2005/04/25(月) 12:55:58 ]
>>783
遠退いたんでしょ?

786 名前:デフォルトの名無しさん [2005/04/29(金) 16:02:44 ]
サーバのプログラムはアイドル時どのように、待っているのでしょうか?
sleepを入れながらポーリングするのでしょうか?







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<215KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef