1 名前:名無しさん@お腹いっぱい。 [2005/09/22(木) 20:29:34 ] UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド 過去スレ(プログラム技術板) Part6 pc8.2ch.net/test/read.cgi/tech/1116908090/ Part5 pc8.2ch.net/test/read.cgi/tech/1105723117/ 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使っている人いますか? その14 (UNIX板) pc8.2ch.net/test/read.cgi/unix/1107587275/ Cygwin使っている人いますか? 3 (Windows板) pc8.2ch.net/test/read.cgi/win/1090131123/ 関連板 Linux板 pc8.2ch.net/linux/ プログラム技術板 pc8.2ch.net/tech/
404 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 10:51:45 ] >>401 ↓これじゃない int main() return 0; の話だろ ↓こっちは省略禁止 int main()
405 名前:400 mailto:sage [2009/03/01(日) 10:57:24 ] ああ、ごめん。 >>395 は論外としてputs云々が気になったので.... でだ。 ばかも ん。 昔のcompilerはなぁ、昔のcompilerはなぁ、 まともなwarning吐かないので、lint使ってたんだぞぉ。
406 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 10:57:31 ] >>400 だから、話の流れ的に「C++では」なの(>>395 >>394 >>392 )。 C++では「宣言の無い関数は呼び出せない」の。 某コンパイラを除いてね。
407 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:00:40 ] >>401 あなたが省略してるのは「戻り値」ではなく「戻り値の型」。 話の流れとは全然関係ないから。 CでもC++でも f() { return 0; } という「戻り値の型の省略」は完全に合法ですから。 もちろんintと仮定されます。 そして、何もreturnしない場合、まっとうなコンパイラなら警告が出ます。
408 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:11:43 ] >>404 >>407 int付けても同じだよw そこが論点じゃないしww $ echo 'int main(){}' | gcc -xc -; ./a.out; echo $? 41 $ echo 'int main(){}' | gcc -xc -; ./a.out; echo $? 116 $ echo 'int main(){}' | gcc -xc -; ./a.out; echo $? 32 毎回未定義。
409 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:12:13 ] >>395 がCの話だと思ってる人って わざわざ「printfが言語仕様に含まれる」と触れてる事を疑問に思わないのかな。 少し前に>>389 があるのに。
410 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:19:51 ] >>408 >>406 や>>393 を無視して、何故わざわざ「省略可能なことが言語仕様で保証されていないC89」でコンパイルするわけ?
411 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:25:23 ] 「C++では言語仕様で保証されている、だからC++のコードだ」という話(それが妥当かはともかく)なのに わざわざ「言語仕様で保証されてない言語(C89)」での結果を何度も貼りつけて何がしたいのかな。
412 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:26:39 ] あ、違った。 「言語仕様で「不定」となることが決まっている言語」だな。
413 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:30:14 ] >>404 の書き方では、「intさえ付ければ戻り値は固定される」と 言ってるように見える。 >>408 はそれに対する反論かと。
414 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:32:03 ] >>404 で言ってるのは >>401 に対して仕様で省略が認められてるのはreturnの方だけだよということだろう
415 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:33:39 ] >>414 でも結局省略したら値が不定んなったんだから省略できないじゃんw
416 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:36:35 ] >>415 だからC99規格対応なら、省略できて C89規格ではそうではないって話だろ
417 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:39:25 ] >>416 結局省略できないじゃんw
418 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:45:48 ] 省略できる言語の話をしてるんだろ? 何で別の言語の話をする?
419 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:48:28 ] 省略できるって主張してる奴は、 「仕様上は省略できるはずです」って言って、 不定値を返すままのソフトを納品すればいいさ。
420 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:56:21 ] >>419 実装がとにかく正しいとか言って、コンパイラ依存のプログラムでも作ってろ
421 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 11:59:15 ] だったらせめて -xc をやめて -xc++ や -std=c99 をつけた結果を貼れよ。 C89で保証されてないことなんか、知らない奴殆ど居ないんだから。 >>376 からの流れなのに>>380 がC++の話じゃないと思い込むバカは居るかもしれないけど。
422 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 12:02:08 ] >>419 どこに、「C89で省略できる」って主張してる奴がいる? あ、いるのかな。 戻り値が保証されてるとは誰も書いていない、ってだけで。
423 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/01(日) 12:12:12 ] ×戻り値が保証されてるとは誰も書いていない ○戻り値が保証されると脳内で勝手に決め付けて特定の実装の結果を張り続けるバカもいる
424 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 10:17:57 ] linuxだとsearch.hのハッシュがやけに遅いのでGhashTableのが性能いらしいんだけど FreeBSDの場合ハッシュの実装をするのにGhashTableとsearch.hと どっちのがおすすめ?
425 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 12:38:43 ] ほとんどの人には不要だと思うけど、一応張っとく。 C++とC98は、main関数は暗黙のreturn 0。C89とその前はそうではなかった。 $ echo 'int main(){}' | gcc -std=c99 -xc - && ./a.out; echo $? 0 $ echo 'main(){}' | gcc -std=c99 -xc - && ./a.out; echo $? <stdin>:1: 警告: return type defaults to ‘int’ 0 $ echo 'int main(){}' | gcc -Wall -std=c++98 -xc++ - && ./a.out; echo $? 0 $ echo 'main(){}' | gcc -Wall -std=c++98 -xc++ - && ./a.out; echo $? <stdin>:1: 警告: ISO C++ forbids declaration of ‘main’ with no type 0 # 禁止されてるけどエラーにならない $ echo 'int main(){}' | gcc -Wall -std=c89 -xc - && ./a.out; echo $? <stdin>: In function ‘main’: <stdin>:1: 警告: control reaches end of non-void function 196
426 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 12:48:53 ] >>424 基本どっちもクヌース本のアルゴリズム。
427 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 12:52:43 ] C98という新規格まで登場したか。
428 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/02(月) 13:32:40 ] >>425 おまえがC++とCごっちゃになってどうする
429 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 09:27:07 ] Cのコード中でディレクトリの内容を比較するのはどうしたらいいか悩んでいます。 動作的には "diff -r dirA dirB" を実行した場合の結果と同じ処理をしたいのですが、 毎回 diff コマンドを呼ぶオーバーヘッドを避け、出来ればCのコードで実現したいと 思ってます。どうすべきでしょう? 1. UNIX の API にこの目的にふさわしいものがあり(何という名前?)、それを使う 2. 違うファイルかディレクトリに遭遇するまで地道に両者のディレクトリを辿るような コードを自分で書く 3. diff のソースコードを入手し、自分のプログラムにリンクして使う 4. その他
430 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 09:57:03 ] お前の書くコードがdiffよりオーバーヘッドが少ないわけがない。
431 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 10:09:27 ] >>429 普通のdiffコマンドは高速でないアルゴリズム( O(ND) )を使ってるから、 gitとかpythonのライブラリに使われてるやつのが速い ってわけで、速度を追い求めるなら差分取得のアルゴリズムについて調べてがんばれ
432 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 10:12:30 ] いや高速でないってこたないんですよ、それより速いのがあるだけで
433 名前:429 mailto:sage [2009/03/03(火) 10:29:38 ] あー書き方が悪かったかな。 もし diff ということで LCS とかそこらへんに脊髄反射されてたらごめんなさい。 自分が知りたいのは dirA と dirB の内容が違うか同じかだけなんです。 この場合むしろディレクトリの階層に効率よくアクセスできることが重要なんじゃないかと 思ったんですが、違います? fts とかですかね? それにファイルを処理するようなソフトならありがちな処理のような気がするので、 どこかに適切なコードのサンプルがあればと思って...
434 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 10:37:16 ] >>433 > 自分が知りたいのは dirA と dirB の内容が違うか同じかだけなんです。 内容の比較は必要か タイムスタンプの比較だけでいいか 同じファイル名が存在するだけでいいのか rsync --dry-runの出力結果を使うとか。
435 名前:429 mailto:sage [2009/03/03(火) 10:50:52 ] >>434 「同じ」とはディレクトリ構造が同じで、その中に存在するファイルの名前&内容が同じ という積もりです。 タイムスタンプは比較しません。 >rsync --dry-runの出力結果を使うとか。 はい、確かにそれも速そうですが、自分のプログラムだと比較的浅いディレクトリに 対してそれを何度も呼ぶことになりそうなので、C の何かの API で書いた方がいいのか なあと。 ある意味 rsync みたいなプログラムなんですが、syncするときにいろいろカスタムな ロジックを入れたいので、コードを書いているといいますか....
436 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 11:32:23 ] 内容比較がcmp -sレベルでいいなら、 readdir/lstatで自分で書けばいいんじゃない? 質問せずに書けば、今頃書き終わっている頃かと。
437 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 13:31:30 ] ファイルとディレクトリの equality は適当に定義出来 るとして、↓みたいになるかな。 for (File src = each of srcDir) { File dst = dstDir.Find(src); if (dst == null) { // src にしかない } else if (src != dst) { // 違う } } for (File dst = rest of dstDir) { // dst にしかない } each of …は都度 readdir して、Find は保持してるプー ルから探して、無ければ見つかるまで readdir、してプー ルに入れていく感じ。見つかったらプールから削除して おいて rest of …でそれを得る。
438 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 14:07:34 ] 両方コレクションにいれて、ソートして、 先頭二つ、計四つを比較しながら取り出せばいい。 四つになるのはどちらが欠けているかわからないから。 どれも違う場合、四つの中で小さいの二つを捨てればいい。 AB AB AB BC BC AB - AB CD AC BD
439 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/03(火) 14:16:00 ] >>438 ファイル/ディレクトリの equality と同様に順序付け も定義出来るなら(ソートするからには出来るはずだ)、 先読みする必要はない。マージソートの要領だ。
440 名前:名無しさん@お腹いっぱい。 [2009/03/12(木) 19:41:22 ] dirp=opendir("."); printf("1 :%d;\n",telldir(dirp)); printf("2 :%d;\n",telldir(dirp)); printf("3 :%d;\n",telldir(dirp)); closedir(dirp); とすると返す値は1,2,3とどんどんインクリメントしていくだけだし seekdirは無反応rewinddirは巻き戻すばかりかtelldirをひとつ進めるだけ readdirとかはちゃんとできているんだけれど 何か呪文とかいるのかダメダメな関数なのか情報please
441 名前:名無しさん@お腹いっぱい。 [2009/03/12(木) 19:51:28 ] >>440 OSはFreeBSDです。
442 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 20:15:55 ] たぶん実装がおかしいんだろう。MacOS Xも同様らしい。 ttp://idm.s9.xrea.com/ratio/2007/09/10/000673.html dirent読むのにtelldirやseekdir使うようなやつはいないから放置されてると想像。
443 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 20:24:17 ] 追加。このへん関係あるかも。 ttp://www.freebsd.org/cgi/query-pr.cgi?pr=bin/121656
444 名前:名無しさん@お腹いっぱい。 [2009/03/12(木) 20:32:49 ] >>440 です。rewinddirの記述は間違っていました。 rewinddirとreaddirだけが使えます。 で調べたらscandirというのがありました。 mallocしてくれて配列に入れて関数指定すればsortもしてくれるようなので コールバックもsort関数に入れます。 >>435 もscandir+lstatでいいのでは? しかしひどすぎるなtelldir+seekdir ファイルの多いディレクトリーでちょろちょろよむもん作りたかったんだけど 一気読みが基本ですか?
445 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 20:38:50 ] とりあえずコールバック抜きのアルファソートやってみた。 c = scandir(dirname, &namelist, NULL, alphasort); if(c == -1) { puts("not opendir"); return(1); } printf ("%d\n", c); for (i = 0; i < c; ++i) { printf ("%s\n", namelist[i]->d_name); free(namelist[i]); } free(namelist); opendirの苦労は一体....orz
446 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 20:40:17 ] >>435 opendir -> ディレクトリをファイルとして開く readdir -> ディレクトリのエントリを一つ読み込む(ポインタ一個進む) seekdir -> ディレクトリのエントリを x 番目にセットする telldir -> 今いるエントリ位置を報告する を組み合わせて, 双方のエントリを比較して 1. 対象物の inode が同じなら処理スキップ 2. 対象物が ディレクトリなら, 自分自身を再帰的に呼び出す 3. 対象物がファイルなら中身を比較 すればええんちゃう?
447 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 20:46:16 ] 既に読んだエントリに戻って読み直すシチュエーションがわからん。 仮にtelldir/seekdirの動作がまともでも、 いちいち物理的にディレクトリ読みに行くような実装だったりしたら、 遅いし最中に誰かがいじらんとも限らんし、いいことなしでは? キャッシュしてるんだとすれば一気読みと何も変わらんし。 というわけで、telldir/seekdirは価値なしなんじゃないかと。
448 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 21:00:32 ] >>447 再帰して必要物がなくって、バックトラックするときに 変わってしまった状態を元に戻すために必要 recur_dir(... here = telldir(... if (このエントリが dir && 比較対象と違う) if (recur_dir(...) == succeed) return なんとか ここに戻ってきた場合何がどうなってるか保証できない seekdir(here) 続きの処理
449 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 21:56:26 ] 何がどうなってるか保証できない状態なら telldirしたところにseekdirしても保証できないだろう
450 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/15(日) 11:44:20 ] ストリームとしてファイルリストをチェックしていくならseekとかは必須だと思うけれど telldirもseekdirも機能しないんだから必要でも存在しない事実をどうする。 一旦readdirだかscandirでざっくりと読み込んで それに対して操作するしか方法が無いのが現実。 バックアップとかで完全一致を目指す場合 「ほぼあっている」前提ならば結局ファイル自体の完全マッチをするしかないと思うが 事前にMD5とかSHA1とかとったリストをディレクトリーに入れとけばそれで済む気はする。
451 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 11:41:43 ] なんだ。ftsとかftwというファイル階層を歩くライブラリーが標準であるんじゃないか。 少なくともperlの「find::file」と同じ事はftwだけでできた。 最低の作り方でもftwのコールバックで配列を構築すればいいわけだし scandirとか使ってバカみたいだった。 何気にファイルユーティリティが固まってきたよ。
452 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 14:33:22 ] opendir/readdir/closedirは、 fts, ftw辺りを書く人のためのシステムコールなんだよね。 まあ自分で書くのも悪くないけど、 scandir/telldirは使わないことをお勧めする。 >>448 に書いてあるようなことは、 "concurrent data structure"と言うべきものだけど、 (Javaのiteratorのremove()のような) UNIXのシステムコールは、"concurrent directory"を 直接的にはサポートしない。 昔、間接的にサポートするために、 update notifyが上がるUNIXenを見たことがあるが、 何だったか忘れてしまった…
453 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 15:25:32 ] 変な用語持ち出して論理に飛躍のあること言い出す輩が出てきたな
454 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/17(火) 16:33:31 ] 用語が理解できないのを論理に飛躍があることにする輩が出てきたな
455 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/25(水) 11:19:17 ] >>452 > opendir/readdir/closedirは、 > fts, ftw辺りを書く人のためのシステムコールなんだよね。 ちゃうやろ…と思って見てみたけど、ffs(ftw) って "." を open() してあれこれしてるだけだよ。 ttp://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/fts.c?rev=1.30;content-type=text%2Fplain
456 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/25(水) 11:42:34 ] >>455 違う。 open(2)は後から戻る時にfchdir(2)するため。 パスで辿ると別のところに行く可能性あるから。
457 名前:名無しさん@お腹いっぱい。 [2009/03/26(木) 19:54:47 ] >>456 少なくともFreeBSDでftsもftwもchdirのオプションをつけようがつけまいが起動時のディレクトリーがカレントだった。 つまり子ディレクトリーの階層に移っていても「getenv("PWD")」の返り値は スタートの場所 コールバック書くときにchdirされていると思って組むとはまる。 素直にpathなりを使う。 詳細システムコールの実装はともかくファイルリストの取得も含めて ファイルサイズとか必要なんだったらftwかftsを使えばかなり楽なわけで 組みもしないで妄言はいていないでとりあえず組んで自分なりのベストをみっければいいんじゃないかと思う。 ftwはソートされないので一様に処理する場合以外は使えないかなと思ったけれど コード量がとにかく少ない
458 名前:名無しさん@お腹いっぱい。 [2009/03/26(木) 19:56:43 ] とにかくディレクトリー内のリストが欲しいならばftwでコールバックで配列に書き込む方法 ツリー取得したいならばftsが良い。 ftwの後腐れのなさは結構魅力 別の選択肢としてpopenでls -lRの返り値もらうという手もある。 perlなら「``」の返り値もらうだけだな。パースは適当にやってくれ
459 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/27(金) 09:41:21 ] >>455 そのソースを読めばopendir/readdirしていることが分かると思うが? 軽く検索しただけでいい加減なことを言わない方がいい。 NFSで動かないfts(3)を実装するわけがない。
460 名前:名無しさん@お腹いっぱい。 [2009/03/28(土) 16:53:22 ] >>459 は「実際に組んでいない」んだから机上の空論はほどほどにね、 >>455 のは客観的なソース評価であるし間違ってはいないし 掲示板でいい加減な事をいっても何の問題もない NFSなんて使わないでしらないけれどtelldir,seekdirすら動かないんだから ftsがNFSで動かないくらい全然あってもおかしくない
461 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/28(土) 18:09:18 ] >>460 > >>455 のは客観的なソース評価であるし間違ってはいないし > 掲示板でいい加減な事をいっても何の問題もない ( ゚д゚)ポカーン
462 名前:455 mailto:sage [2009/03/28(土) 22:14:14 ] ちゃうやろと思ったのは telldir/seekdir に関してだよ。 452 が opendir/readdir/closedir にしか言及してないってことに 気付いて無かった俺がアホなだけ。
463 名前: ◆RubyFahc/I mailto:sage [2009/03/31(火) 15:55:27 ] rubyおたく向けのトリップ創りました。 RubyFahc/I : #NcM--Cセ{ Ruby.qKt3Q : #%C/Y:gmk Ruby3r65m. : #h6d|TbE」 RubyWViHDk : #:jV|^?N~ Rubyi8CaTg : #jDt1G4`: RubymzWnxQ : #!N{o6VヲJ Rubyfo02Gg : #ヲYJ)ffn$ Rubyu9svnE : #+T-GT.Ti RubyypieqU : #+,K:ヲ%v[ RubyIoAFuU : #?)V0M]c` RubyNL3l2E : #C^?}8sヲq RubyredCpo : #JU@UkdMy Rubybk3Pyo : #hU@fQm,_ RubyYQ3Jtk : #m\4A?2'e Rubyvjyg76 : #XIQ{N$J3 RubyS4Qmog : #/aKG.b\* RubyPiJzfc : #_jq@zdZh Ruby24.u4U : #l[Lz\Y)h RubyVtS0bk : #pD'y$Zi\ Ruby4dt6ro : #「{Nv@f(0 RubymGCEfc : #9NXi[v|) RubylUmOgY : #+(dK「@X{ RubypDsPgo : #HfLO0Nr8 RubyRlH2oc : #/2)k|Gpu RubyYbNPnc : #シzU2.ヲ.L RubyyRsYeU : #/Spddm+A RubydSrMqw : #mx+9{[)c RubyiMB9bQ : #KMlaIaOr RubyOerZfE : #11J\EXK8
464 名前: ◆Ruby.c34.Q mailto:sage [2009/03/31(火) 15:57:16 ] Rubyl/JuN. : #{^3l?jM@ RubyMyu4iA : #g{@Sセ,'5 RubysBAU/s : #slubZ7サd RubyeT6Qio : #,)gAzFEX RubyDyS/e. : #サAbV1lG/ RubyRfMLNM : #Wシ」w[8}h Rubytc3JHQ : #Z=o\ib[サ Ruby1lE7L6 : #h1シ{A-kj RubyuUag0Y : #gヲ8!@W$n RubyG6B8e6 : #0+7サ=5VH RubyGguz1Q : #-g5i9\K8 RubyqzNGOo : #~t(mCuXQ RubycQw0oM : #]%}-N(Me RubynWWUBo : #PrU?「シJJ Ruby.c34.Q : #IS+zヲABセ RubyDdsChM : #qVKZI+{= RubyBu2YeQ : #B@[.Q-o2 RubyoIbx4o : #ヲ2:qwsJD RubyaL3Nm. : #k\uS\tFe RubyRGJW9Y : #9)`H%Pc+ RubyKHrqAU : #zrB_X@tC RubydeGFDA : #6「31rNEI
465 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 03:46:26 ] UNIXとC++どっちがいいでしょうか?
466 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 04:00:32 ] MACがいいと思います
467 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 05:00:56 ] マクドってゆえや
468 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 18:34:28 ] 取り敢えず今「ディレクトリ取得」スレ的な流れだと思うんだけど NFSってみえないといけないの?あとサン婆 httpかftpとローカルデバイスだけあればいいという考えではだめ?
469 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 18:39:46 ] 今時ディレクトリをread(2)出来るアホなUFS on UNIXは、 BSDくらいだと思うが、他にもあればリスト化希望。
470 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 20:57:02 ] プログラマーになりたい・・ 作曲家になりたい・・・ フラッシュ職人になりたい・・ 絵師になりたい・・ 俺にできるだろうか?
471 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 21:05:01 ] なるだけならすぐなれる
472 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 21:14:23 ] 「プログラムを組む」のと「プログラマーになる」のは違う 「適当な曲を作曲する」のと「作曲家になる」のは違う (以下同) よって、「なるだけ」でもすぐにはなれない
473 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 21:27:55 ] そうか・・ やはり必要なのはCですよね
474 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 21:29:10 ] プログラマになりたくてなるんじゃないなってしまう者がプログラマ 貧弱一般人がプログラマになろうとしてもここはUNIX界なので人工的に淘汰されるのが目に見えている
475 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 21:37:57 ] なってしまう・・とはどういうことかもう少し詳しく聞かしてほしい
476 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 21:41:10 ] ようするに、才能じゃね?
477 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 21:47:36 ] このプログラム腐ってやがる→仕方が無い、自分で直すか… このプログラム良いんだけど、ちょっと機能が足りないな→仕方が無い、自分で直すか… このプログラム良いな、どうやって実装してるんだろう→ソース読むか… 新人プログラマは頑張ってるんだけど、仕事ができねえ→仕方が無い、俺が実装するか… どうも業務の効率が悪いな→一丁、便利スクリプト作ってやるか… 俺は↑こんな感じでプログラムを書く様になったけど、 >>474 が言ってるのはまた別の事かな。
478 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 21:59:08 ] >>474 の言葉のせいで無理なような気がしてきた(´・ω・)
479 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/03(金) 22:33:27 ] つまり、それほど、重く受け止めてしまうほどの意味深い言葉に聞こえたのです
480 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/04(土) 10:45:18 ] >>474 はブロントさんだろう。一級プログラマとして 一般人から見ると憧れの的
481 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/04(土) 11:11:11 ] >>480 ブロントさん==一級プログラマ ????
482 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/04(土) 11:14:06 ] >>477 お前、素質あるな。
483 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/04(土) 12:31:19 ] >>477 ハッカー気質をお持ちだね。良いことだ。
484 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/05(日) 21:54:37 ] 初歩的な質問ですが、 みなさん童貞ですか?
485 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/05(日) 22:20:56 ] いいえ、妖精です。
486 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/05(日) 22:49:29 ] 君もウィザードだろ?
487 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/05(日) 23:06:39 ] Perlのモジュール WWW::Mixi でのログインを http ではなく https にして 安全にパスワードを送信するように改造するには何を使えばいいのでしょうか? この辺をこういじってみたら?など詳しい方アドバイスを頂ければ幸いです。
488 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/05(日) 23:28:16 ] いいえ、ワイザードです
489 名前:名無しさん@お腹いっぱい。 [2009/04/06(月) 12:47:12 ] 41で童貞です
490 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/06(月) 17:06:36 ] >>487 WWW::MixiはしらないけれどNet::SSLeayかCrypt::SSLeayが入っていれば lwpでhttpsが使えるはずだから 今httpsが使えないとしたらどちらか入れて同じコードで試してみたら?
491 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/06(月) 17:19:05 ] とりあえずFlashがやりたいならば java +flex4 SDK wine+Flashの適当なバージョン flasm swfmillそしてエディターとxtermがあればかなりのことができる。 mtascだってつかえる。 CでcairoとSDLとffmpegを駆使すればFlash 用の絵描きツールも作れるよ まぁとりあえずhtmlでアドベンチャー見たいなものを作る程度の技能がないとだめだね、 絵はローグとかつくーるじゃないけれどとりあえず借り物でもいいんじゃないの
492 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/09(木) 01:40:40 ] プログラミングからは少し外れますが・・・ HogeHugaはキャメルケースって言いますが、hoge_hugaは何と言うのですか?
493 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/09(木) 12:56:25 ] >>492 パスカル
494 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/04/11(土) 16:28:13 ] >>492 snake case
495 名前:名無しさん@お腹いっぱい。 [2009/04/24(金) 07:19:05 ] underscore styleというのもどっかで見たような気がしなくもない
496 名前:名無しさん@お腹いっぱい。 [2009/04/25(土) 12:15:33 ] PF_UNIX/SOCK_DGRAMにデータを送る時、FreeBSDでは 送り元が無名になってしまい、受け取った側が 返答を送り返すことができない。(PF_INETだともちろんソースポートが付くが) だから、間に合わせのファイル名をbindしてから送信する必要あり。 あとでunlinkしないと行けないし、美しくない。 Linuxだと、PF_UNIX/SOCK_DGRAMでも、bindしなくても 勝手に名前を割り当ててくれて、不要なソケットファイルも作成されないんだが、 そういうことはできないの?
497 名前:名無しさん@お腹いっぱい。 [2009/05/02(土) 13:06:49 ] C++のtemplateで、templateの展開先を限定することってできますか? template <class T> void func(T arg) { // argが HOGE型またはFOO型の場合の処理 } template <class T> void func(T arg) { // argが BOKE型またはHAGE型の場合の処理 } みたいなことをやりたいのです。関数名は func()で同名にしたいのです。 たとえば、template <class T={HOGE,FOO}> みたいなことが実現できませんか?
498 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 13:57:48 ] >>497 template <class T> void funcHOGEFOO(T arg) { // argが HOGE型またはFOO型の場合の処理 } template <class T> void funcBOKEHAGE(T arg) { // argが BOKE型またはHAGE型の場合の処理 } void func(HOGE arg) { funcHOGEFOO(arg); } void func(FOO arg) { funcHOGEFOO(arg); } void func(BOKE arg) { funcBOKEHAGE(arg); } void func(HAGE arg) { funcBOKEHAGE(arg); }
499 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 14:01:28 ] >>498 だから、そうは書きたくないので、 templateを使って奇麗にまとめる方法を質問してるんですが。。 他にわかる方お願いします ↓
500 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 14:53:03 ] 何が不満なのか言えよ。 どうしても template だけのコードにしたいんなら、 boost の enable_if に is_same とか突っ込んで使えばいいかもしれない。
501 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 16:53:57 ] >>498 の方法では、func()の一方のargの型の種類が不定の時対応不能。 つまり、 片方の func() は argが HOGE型またはFOO型の場合 もう片方の func() は argが「HOGE型またはFOO型」以外の場合すべて だったとしたらどうする?
502 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 17:06:02 ] >>501 template <class T> void funcHOGEFOO(T arg) { // argが HOGE型またはFOO型の場合の処理 } template <class T> void func(T arg) { // argが「HOGE型またはFOO型」以外の場合すべて } template<> void func(HOGE arg) { funcHOGEFOO(arg); } template<> void func(FOO arg) { funcHOGEFOO(arg); }
503 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 17:13:52 ] >>502 「HOGE型またはFOO型」というのが、2種類だけじゃなくて10種類くらいあったら template本体以外に void func(HOGE arg) とかを全部列挙するのが すごくダサイんですが。 あと、本来の関数名以外に funcHOGEFOO()という関数名をつけなければいけないのも 名前がぶつかるかも知れないし美しくない。
504 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/05/02(土) 17:18:14 ] なんで人にコード書かせて後から条件増やして文句つけるの? そういう遊びなの? アホなの?