1 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 13:14:50 ] UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド 前スレ 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/ 関連板 pc8.2ch.net/unix/ pc8.2ch.net/linux/
449 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 02:01:29 ] 俺は焼き畑も printf() も良く使うな 根っからのレガシーだから
450 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 02:19:06 ] 道具なんて自分に合ったもん使えばいい。 他人の道具にいちいち文句言うのが間違い。 作業が遅いのが気にくわんならば「遅い」とだけ文句言え。
451 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 02:24:13 ] >>450 新人相手なら教育すべきだろうし ペアプロとかしてると、突っ込みたくなるんじゃないかな ほら、viでなんか非効率なことやってるの見て、「こうやるんだYO!!」 みたいな でも、最近はそういう「職場の先輩」って少なくなってる気がするね
452 名前:デフォルトの名無しさん [2005/07/09(土) 02:31:51 ] よく思うのが 構造体や関数の定義位置を探す方法に乏しいこと ヘッダをgrepして定義位置を探すとかって原始的だよね? 効率のいい方法があれば とっておきのスク水猫耳を
453 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 02:33:19 ] >>450 > 作業が遅いのが気にくわんならば「遅い」とだけ文句言え。 頼むからチームでプログラミングするところには参加しないでね
454 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:03:50 ] >>452 grep でも C/P は十分だと思うけど、 ↓みたいに web 化するとか lxr.linux.no/
455 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:09:14 ] >>451 非効率の例で vi を挙げないでくれ...
456 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:12:07 ] >>455 edとかのがよかった?(w
457 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:13:38 ] >>454 IDEは、IDE自体のデキにもよるけど、class/structの宣言変えたりすると すぐ追従してくれる。 毎度毎度 make ctags とかそんなようなコマンドをタイプしてしばらくバッチ処理を待たないと いけない世界とはえらい違いなワケですが。
458 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:14:26 ] >>456 効率悪ぃのは得物の所為じゃねぃ
459 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:16:31 ] >>457 頻繁に書き換える所なら脳キャッシュに載ってるんじゃないかね
460 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:17:02 ] >>458 いや、こう言っちゃなんだけど俺はvi好きよ。 今、純正のvi触る機会は無いけれど。 >>451 は別にviをコケにしてるんじゃなくて、 習熟度によってえらく使い方が替わってしまうviというエディタを 使いこなせていない新人君の操作にイライラしてしまう、 というよくある光景を描いたつもりなんだ
461 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:17:43 ] >>459 いやさ、脳キャッシュとか脳スタックとか容量に限界あるから 割り込みもよく入るし(w
462 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:20:48 ] >>460 そうか、スマソ。 最近、vi 使ってるだけで後輩から老害認定されてる人を見たもんで。 Java だったから IDE 使った方が良いんだろうけど、ちょっと悲しかった。
463 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:27:12 ] Javaは言語がクソだから環境を整えないとマトモに使えないんだよな。
464 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:31:20 ] 俺、vi使ってJavaでコーディングしてたら、JBuilderユーザの同僚に 「速いねー」<(タイプが) とか誉められたことがあるな あれは嫌味か何かだったんだろうか ま、Javaみたいに完全にクラス指向の言語だと、エディタの補完機能の 有効性がデカい、というのはある。Cとかに比べると
465 名前:デフォルトの名無しさん [2005/07/09(土) 03:41:56 ] >>457 ctagsってなに? 便利そうなんだけど 尻尾もつけるから
466 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:44:27 ] >>465 ctags(1) つか、おまいは本当にUNIXプログラマなのか
467 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 03:47:55 ] >>463 そんなJavaをデザインしたBill Joyには足を向けて寝られない>>463
468 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 04:07:08 ] >>466 JMに載ってないコマンドはいまいち知らんのよ とりあえずこれを使えばincludeされる予定のヘッダを 全部読んでタグ作ってくれるのね。 SASSOKU試してみる
469 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 08:13:45 ] >>468 GNU Globalのほうが便利よ
470 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 09:00:17 ] viで、カーソル移動を矢印キー押しっぱなしでやってるの見ると一言言いたくなるよね。 で、聞いてみたら検索(/)コマンドも単語移動(wなど)も、ex系のコマンド(sなど)も知らなかったりしてもうね……
471 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 10:06:34 ] viなんて非常時以外使わんだろ 得意げにviの使い方を語る奴見ると引く
472 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 10:14:35 ] いや、そんな当たり前のことで得意になったりしませんから。 #まさか、sed使えるからって得意になる奴もいまい。それと同じことだ。
473 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 10:19:39 ] vi はカーソル移動=検索なんだよね(ほぼ) その辺りの感触がわからないとゴミにしか見えないだろう。
474 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 10:24:04 ] #カーソル移動はfだが
475 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 10:29:32 ] あぁ・・・
476 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 11:05:22 ] Xlib スレがあるのにそっちを勧める奴はおらんのか。 こっちだ。 pc8.2ch.net/test/read.cgi/tech/1060005170/l50
477 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 12:39:11 ] Xlibなんて過去の遺物だし
478 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 12:53:35 ] それは libc なんて過去の遺物だしって言うのと変わらんよ。
479 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 14:38:12 ] >>471 viしか使えなくてすまん
480 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 15:36:30 ] libcなんてダサすぎる。 時代はglibc。
481 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 15:44:01 ] glibc? 時代はlibstdc++。
482 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 15:46:42 ] たしかにオマエラには2ちゃんがお似合いだw
483 名前:djb信者 mailto:sage [2005/07/09(土) 15:56:01 ] 時代は、diet-libc
484 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 18:00:57 ] >>471 非常時に使うのって、edじゃないか?
485 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 18:03:23 ] >>484 え?非常時は boot cdrom で、dtpad 使うけど?
486 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 18:42:03 ] 時代は変わったちうことですね
487 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 19:04:12 ] 非常時でもディスプレイが映ると思うなよ
488 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 19:11:28 ] >>487 シリアルポートは生きてるかも知れないけどな
489 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 19:29:12 ] 非常時は巫女/ぐにょ Linux で Emacs
490 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 20:20:51 ] 非常時にCDブートなんかしてたら漏らしちゃうよ。
491 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 21:36:13 ] じゃUSBブートでおながいします。
492 名前:デフォルトの名無しさん [2005/07/10(日) 01:32:30 ] 晒しあげてやる。
493 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 01:46:43 ] Xlibを使ったコードを書いていて実行してみたら XCreateFontSetのところで以下の様なエラーが出ました これはどのような意味なのでしょうか? X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 1 (X_CreateWindow) Value in failed request: 0x0 Serial number of failed request: 7 Current serial number in output stream: 13
494 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 01:51:11 ] >>493 X_CreateWindow()のパラメータがあってなくてBadValueエラーがでたんだろ。 そのXCreateFontSet()の呼び出しをコメントにして同じエラーがでるなら それ以前に呼んでる関数を疑え。
495 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 02:20:34 ] あるいはデバッグ時には、main()の先頭かあるいは デバッガを使って実行前に _Xdebug = 1; をしておくという手もある。(遅くなるが) こうすると、毎回XSync()するのと同じ効果があるので、 パラメータ間違いがあった場合すぐにエラーが起きる。 これって昔は常識だったけど、今は lost technology に近い?
496 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 02:24:56 ] そもそも生の Xlib 自体が lost technology に近い
497 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 03:16:21 ] 今更X Windowを何かのシステムのインタフェースに 使おうという発想がlost ideaだ
498 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 10:20:30 ] >>400 は本当に生のXlibでいいのか? Motif, gtkとかフレームワークもいろいろあるが… www.free-soft.org/guitool/
499 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 10:30:28 ] Qt
500 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 11:24:14 ] QtはGPLだから用途によってはまずいぞ。 LGPLなgtkの方がまだ安全。
501 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 11:28:11 ] え?Qtはライセンス料払えば非GPLでもOKやん。
502 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 11:26:37 ] Windowプログラミングは初めてなのですが、何か良い入門書があったら教えてください
503 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 11:29:46 ] 金を払ってQtを使う阿呆は(ry
504 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 11:56:34 ] >>502 釣りでないならスレ違い。
505 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 11:57:48 ] マックプログラミングは初めてなのですが、何か良い入門書があったら教えてください
506 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 12:15:56 ] 面白くないよ
507 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 12:30:47 ] >>504 書籍の質問はダメですか?
508 名前:502 mailto:sage [2005/07/10(日) 12:58:29 ] わかりました別スレに行きます。さようなら
509 名前:502 mailto:sage [2005/07/10(日) 12:58:59 ] わかりました別スレに行きます。さようなら
510 名前:502 mailto:sage [2005/07/10(日) 13:02:04 ] わかりました別スレに行きます。さようなら
511 名前:502 mailto:sage [2005/07/10(日) 13:00:12 ] わかりました別スレに行きます。さようなら
512 名前:493 mailto:sage [2005/07/10(日) 14:04:33 ] 皆さんどうもありがとうございました いろいろとやってみたのですがどうもうまくいきませんでした font_fontsetに入れるところでエラーになります。 何が悪いのかは本当にけんとうもつきません したは、簡略化したコードです 何かうたがうてんなどありますでしょうか? int main( int argc, char **argv){ Display *disp; disp = XOpenDisplay( NULL); font_set( disp); } void font_set( Display *disp){ char **misss; int miss_count; char *def; XFontSet font_fontset; font_fontset = XCreateFontSet( disp, "-mona-gothic-medium-r-normal--16-*", &misss, &miss_count, &def); }
513 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 16:44:19 ] それ実行してみたが、特にエラー出ないんだけど?
514 名前:493 mailto:sage [2005/07/10(日) 16:54:34 ] はい、わたしも上記のだけですとエラーはでないです 上記のようなコードを書く際になにか注意事項のようなものはありませんでしょうか?
515 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 16:59:04 ] 回答不能な質問するな
516 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 17:00:43 ] 解答できないのなら書き込むな
517 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 17:12:01 ] 真性のアホか。 そういう時はエラーが確実に発生する簡略化したコードを貼るんだ
518 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 17:14:06 ] >>494-496 を 150 万回くらい読みなおすこと。 通常は Xlib の関数を呼んだからといって その時点でサーバにリクエストが投げられるのではない (効率のためバファリングされる) ということを頭に入れておくこと。 >>516 馬鹿は黙っていること。
519 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 17:23:42 ] おまえらちんこ生えてるくせになまいきいってんじゃねーよ
520 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 19:51:47 ] >>519 金玉も無いくせに(以下同文)
521 名前:デフォルトの名無しさん [2005/07/10(日) 22:00:59 ] とりあえず、 X protocolは非同期メッセージを使ったprotocolで、 Xlibはその非同期メッセージを直接扱うAPIであること、 を理解してください。
522 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:01:23 ] >>519 お友達になってください。おながいします。
523 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:47:03 ] >>516 の尻の穴で我慢しる
524 名前:デフォルトの名無しさん [2005/07/11(月) 17:52:50 ]
525 名前:516 mailto:sage [2005/07/11(月) 17:58:37 ] >>522 いれて、、、、、、、、、、、 ポッ
526 名前:デフォルトの名無しさん [2005/07/11(月) 19:05:03 ] 皆さんのお知恵をかりたいのですが OS: Linux CentOS 4 自作アプリ内からの firefox 起動/終了について アプリには、firefox起動メッセージとパラメータとしてURLがきます。 (URLはその都度変化する) するとアプリは 1. スレッドをDETACHEDで生成 2. "1"のスレッドで system("firefox <URL>"); を行い firefox を起動 3. syste() が終了したら、 メインスレッドにメッセージを送信して"1"のスレッド終了 としてます。
527 名前:526 [2005/07/11(月) 19:05:29 ] 続き アプリには複数回メッセージがきます。 その都度上記処理を実行し、これにより複数のURLに対してそれぞれ firefoxウィンドウ が開きます。 ここで質問です、 特定のURLへの firefoxウィンドウが閉じたというアクションを自アプリ内で どうすれば知ることが出来るでしょうか? 当初、各子スレッドが system(3)でブロックすることを期待していたのです が firefoxは、既に起動していると既存のfirefoxプロセスにて新URLへのウ ィンドウを開くため system(3)がすぐに終了してしまいます。 よろしくお願いします。
528 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 19:34:37 ] >>527 firefoxが生きている間待ちつづけるスクリプトを書くとか
529 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 19:41:24 ] 拡張とか書かないと無理じゃないかねぇ。
530 名前:527 [2005/07/11(月) 19:56:25 ] >>528 ちょっとイメージがわきません。 詳しく教えていただけますか?
531 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 19:56:32 ] systemじゃなくて fork + exec じゃだめなんか?
532 名前:527 [2005/07/11(月) 20:12:31 ] >>531 pid_t child; if ((child = fork()) == 0) { execlp("firefox", "www.linux.or.jp/ ", (char*)0); } if (child < 0) { goto end; } waitpid(child, NULL, WNOHANG); をやったのすが、指定したURL www.linux.or.jp/ が表示されず、 また waitpid もすぐ戻ってしまいました。 どうすればいいんだろう...
533 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 20:24:35 ] execlpの引数合ってる?
534 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 20:26:19 ] > firefoxは、既に起動していると既存のfirefoxプロセスにて新URLへのウ > ィンドウを開くため が真実ならば、fork() & exec()で実行しようが何の解決にもならんだろ 馬鹿馬鹿しい
535 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 21:57:58 ] ソース読めばぁ?
536 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 22:37:12 ] つーか、ソフトウェア板行ったら、 誰かがその目的に合った拡張を書いてくれると思う。
537 名前:526,527 [2005/07/12(火) 13:33:12 ] dirtyな方法でしょうが、なんとか動かすことができました。 とった手段は次の通りです。 1.スレッドでURLに対応したプロファイルを作成する プロファイルは既存のものでも大丈夫なようです。 system("firefox -CreateProfile <profile>"); 2."1"のプロファイルを指定し、firefox を起動 system("firefox -P <profile> <url>"); 新規に作成したプロファイルの場合、標準エラー出力にエラー/警告がでます。 上記によりその都度 firefoxが別プロセスで起動し、子スレッドが system でブロックするようになりました。 firefoxを閉じると system から戻ります。 他に良い方法がありましたらどうぞご教授下さい。 色々考えてくれたか方々、ありがとうございました。
538 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 20:01:45 ] >>537 だからさー、何でソース読まないの?
539 名前:537 mailto:sage [2005/07/12(火) 20:52:14 ] -、 ,.-、 ./ .\ / ヽ / ;ゝ--──-- 、._/ .| /,.-‐''"´ \ | / ヽ、 | / ● ヽ| >>538 l (_人__ノ ● l いや、そんな事言われても .| ´´ | / | ワテ猫やし l ヽ_/ ´´ l ` 、 / `ー 、__ / `'''ー‐‐──‐┬‐‐'''"" / | / |
540 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 21:08:08 ] >>539 なごんだ
541 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 00:27:29 ] APUEの新版買った人いる? いたら感想聞かせて
542 名前:デフォルトの名無しさん [2005/07/17(日) 07:40:38 ] クラスの関数でEUCの文字列をUTF-8に変換するものを作りました。 これをあるプログラムから呼ぶと正しく処理できるのに、別のプログラムから 呼ぶとiconv_open()の部分で iconv_open(): Invalid argument とエラーになってしまいます。iconv_open()の引数は固定なので上記のような エラーにはならないと思うんですが、こういうことはどういう原因で起こりえる のでしょうか? 曖昧な質問ですみません。 2つのプログラムは同じ環境でコンパイルして動かしています。 MiracleLinux2.1 + gcc3.2.2 + glibc2.3.2です。 --- class Hoge { ( ... 略 ... ) void Hoge::UTF8deHyouji(const char*str) { ( ... 略 ... ) iconv_t cd = iconv_open("UTF-8","EUC-JP"); if(cd == (iconv_t)-1)){ fprintf(stderr, "iconv_open(): %s", strerror(errno)); return; } if(iconv(cd, &inbuf, &inleft, &outbuf, &outleft) == (size_t)-1){ fprintf(stderr, "iconv():%s", strerror(errno)); } iconv_close(cd); ( ... 略 ... ) } }
543 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 09:36:49 ] まずmainの直後でやれ 話はそれからだ
544 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 09:39:21 ] man iconv_open の ERRORS のセクションはご覧になってらっしゃる?
545 名前:542 mailto:sage [2005/07/17(日) 12:57:11 ] >>543 変換部分だけを切り出して実行すると正常に動作します。 またクラスから呼び出して動作する場合もあるのです。 もともとは大きな(?)プログラムの中で使用されていたクラスで そこではエラーになるので、クラスの関数だけ呼び出して実行 する簡単なプログラムで試したらエラーが出ないという謎の状況 です。 >>544 変換だけ行うプログラムなどでは正常に動作するので、サポートは されていると思うのです。また、iconv -l でもEUC-JP、UTF-8がある ことを確認しました。同じ環境でプログラムによってEINVALが返って しまうことはあったりするのでしょうか…?
546 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 13:57:34 ] iconv_openの呼び出しをstraceしてみるトカ
547 名前:542 mailto:sage [2005/07/17(日) 14:40:26 ] >>543 ふと思い立って、動かないほうのプログラムのmain()で iconv_open() 〜 iconv_close() までの処理を書いてみたら そこでも「Invalid argument」になってしまいました。 だんだんワケがわからなくなってきました…orz >>546 ありがとうございます。やってみます。 (実はstrace自体知らなかったりしますが…)
548 名前:542 [2005/07/17(日) 14:53:40 ] straceの結果、下のような行がありました。 open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/gconv/gconv-modules", O_RDONLY) = -1 ENOENT (No such file or directory) 動かないほうのプログラムを調べてみると、サーバプログラムなので 実行ユーザのホームにchroot()していました。試しにchrootしている 箇所をコメントアウトしたら正常に動作しました。 問題の原因は解ったのですが、iconv()を使用するプログラムでは chrootしてはいけないということになるのでしょうか?セキュリティの 関係でここはchrootしておきたいのですが、何か良い解決策はない ものでしょうか。
549 名前:デフォルトの名無しさん mailto:sage [2005/07/17(日) 14:57:56 ] chrootした先にも必要なもの一式そろえてあげればいいのでは。