- 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/
- 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を入れながらポーリングするのでしょうか?
- 787 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 16:06:08 ]
- 何するものかによって違うけど、普通は select とかだろうね。
- 788 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 16:09:48 ]
- >>786
ポーリングでしか分からないのなら、それもあり。 でも定期的に無駄にCPU使うので、可能なら accept なり、read なりでイベント待ちするのが普通
- 789 名前:デフォルトの名無しさん [2005/05/01(日) 10:11:26 ]
- Linuxでのプログラミング学習です。
こんな問題をいきなり授業で出題されました。 まだほとんど何もやってないので、さっぱり 意味が分かりません。分かる方がいらっしゃるなら、 回答の方教えてはいただけませんか? f(x)=xの2乗-xy-yの2乗 について x=-0.423 y=1 の時の値を(小数点第4位までの表示) で求めなさい。ただし、変数x,yの値はscanf文で 入力させてください。
- 790 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 10:15:54 ]
- アナタとワタシはスレ違い。
- 791 名前:デフォルトの名無しさん [2005/05/01(日) 10:20:48 ]
- GTK プログラミング!!
で聞けばいいんですかね?
- 792 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 10:37:11 ]
- >>789
perl -e '$x=scanf();$y=scanf();printf "%.4f\n",$x**2-$x*$y-$y**2;sub scanf {<>}'
- 793 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 11:20:35 ]
- >>789
お好きなところへどうぞ。 pc8.2ch.net/test/read.cgi/tech/1113811213/ pc8.2ch.net/test/read.cgi/tech/1108989422/
- 794 名前:デフォルトの名無しさん [2005/05/01(日) 12:11:43 ]
- ありがとうございました
- 795 名前:从*・ 。.・) ◆SayuminPM. mailto:sage [2005/05/01(日) 21:46:42 ]
- Advanced Programming in the UNIX(R) Environment (2nd Edition)
www.amazon.com/exec/obidos/tg/detail/-/0201433079/ みんな予約した?
- 796 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 22:50:17 ]
- そんな消え行く過去の遺産の本はもういらん
第1版で十分
- 797 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 23:19:31 ]
- ”そんな消え行く過去の遺産の” と "はもういらん"
は不必要
- 798 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 23:38:03 ]
- 今住んでいるところで現物見れそうもないんで、
とりあえずレビューされてから考えようかな、と。 第1版は持ってるし。エラッタ修正待ちも兼ねて。
- 799 名前:デフォルトの名無しさん mailto:sage [2005/05/01(日) 23:42:31 ]
- >>797
本 第1版で十分
- 800 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 00:07:33 ]
- $ cat >>799 | grep "で" | awk -F'版|十' '{ print $2"?" }'
- 801 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 00:26:02 ]
- ワロタ
- 802 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 00:45:05 ]
- >>800
>799は>797の指示に従ったんだろ。
- 803 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 00:54:40 ]
- >>798
×エラッタ ○イレイタ ○エラータ
- 804 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 03:53:51 ]
- もはやカタカナ表記はエラッタでいいんじゃないの?
UNIXをユニックスと書くやつはいてもユーニクスとは誰も書かないのと同じで。 803は現代日本で生きるのは大変そうだな。 明治時代なら好きな読みを押し付けられたのに。
- 805 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 03:59:28 ]
- >>804はアイロンとか使えないんだよ。
- 806 名前:デフォルトの名無しさん [2005/05/02(月) 04:20:02 ]
- 急速にスレの質が低下してまいりました
- 807 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 19:52:24 ]
- いや、最初からこんな感じだったよ
- 808 名前:デフォルトの名無しさん mailto:sage [2005/05/02(月) 19:56:03 ]
- バケラッタ
- 809 名前:デフォルトの名無しさん [2005/05/04(水) 16:07:05 ]
- c++(gcc)での実行ファイル名(つまり自分自身のファイル名)の取得方法を教えてください
- 810 名前:デフォルトの名無しさん mailto:sage [2005/05/04(水) 16:07:46 ]
- argv[0]
|

|