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/
577 名前:デフォルトの名無しさん mailto:sage [05/03/16 01:03:40 ]
578 名前:デフォルトの名無しさん mailto:sage [05/03/16 01:08:34 ] >>577 ネタもないのに書くなYO!
579 名前:567 mailto:sage [05/03/16 03:04:40 ] >>587 ソースコードが間違ってます。 冒頭で、 using namespace std; とするか、std::coutとするのが今ん流儀です。 それ以外は処理系依存の動作。 って書こうと思っていたのにッ…orz
580 名前:デフォルトの名無しさん mailto:sage [05/03/16 03:08:27 ] もうこのくらいでやめとこうや。 な?
581 名前:デフォルトの名無しさん mailto:sage [05/03/16 04:20:47 ] |
582 名前:デフォルトの名無しさん [05/03/16 11:16:00 ] age
583 名前:デフォルトの名無しさん [05/03/17 16:47:56 ] gdb でデバッグするために gcc で -g をつけてデバッグ情報つきの オブジェクトファイルを作ってから リンクしました. ところができた実行ファイルを gdb しても デバッグできません. たとえば list しても No symbol table is loaded. Use the "file" command. とでます. -g をつけるとたしかに .o ファイルはサイズが増えていますが, 最終的にリンクすると,できた実行ファイルは -g を つけようとつけまいとなぜか変わらないんです. なぜでしょうか?
584 名前:デフォルトの名無しさん mailto:sage [05/03/17 16:53:20 ] リンクするときに-gをつけてないとか。
585 名前:583 [05/03/17 16:58:50 ] >>584 リンクするときに -g つけてもつけなくても結果は同じです
586 名前:デフォルトの名無しさん mailto:sage [05/03/17 17:10:29 ] リンクするときに-sをつけているとか。
587 名前:583 [05/03/17 17:21:53 ] >>586 たしかにリンクに -s がついていて これをはずすとデバッグできました 他人が書いたソースなもんで man 見たところ -s に対する説明がありませんね -S はありますが. これはなんでしょうか?
588 名前:デフォルトの名無しさん [05/03/17 17:34:29 ] 少しは上の方を見ろよ。
589 名前:429 [05/03/17 20:46:23 ] >>587 > man 見たところ -s に対する説明がありませんね % man ld <snip> -s --strip-all Omit all symbol information from the output file. -S --strip-debug Omit debugger symbol information (but not all symbols) from the output file. <snip> って, 書いてあるが...
590 名前:デフォルトの名無しさん mailto:sage [05/03/17 20:48:22 ] わかりにくいなあ なあ!
591 名前:デフォルトの名無しさん mailto:sage [05/03/17 21:14:43 ] Solaris のコンパイラ (Forte, Sun ONE Stuido) のマニュアルには ちゃんと書いてあるよ。 -s Removes all symbolic debugging information from the output object file. This option is passed to ld(1). This option cannot be specified with -g. gcc 場合、マニュアルには確かにないねえ。 しかし gcc の info を見ると実は書いてある。 GNU 系の場合、これはありがち… だから GNU は(ry
592 名前:デフォルトの名無しさん mailto:sage [05/03/17 21:19:38 ] >>591 > gcc 場合、マニュアルには確かにないねえ。 > GNU 系の場合、これはありがち… おれは, 一時期, gcc だと obsolete になったのかと思って, -Wl で ld に渡してたぞ. だから GNU は(ry
593 名前:デフォルトの名無しさん [05/03/17 21:23:07 ] >>591-592
594 名前:デフォルトの名無しさん [05/03/17 22:16:12 ] 1から100までの自然数を素因数に分解して出力しなさい 誰かC言語でプログラム書いてもらえませんか?
595 名前:デフォルトの名無しさん mailto:sage [05/03/17 22:18:19 ] >>594 俺様に命令するな!!!
596 名前:デフォルトの名無しさん [05/03/17 22:19:29 ] たのみますm(__)m
597 名前:デフォルトの名無しさん mailto:sage [05/03/17 22:25:36 ] >>594 最高速なアルゴリムを示そう。 int main() { fputs("2: 2\n" "3: 3\n" "4: 2, 2\n" ... 自分で埋めろ , stdout); return 0; } (1も素因数分解できるんだっけ?素因数ってもう忘れた)
598 名前:デフォルトの名無しさん mailto:sage [05/03/17 22:34:54 ] うちの gcc の man page には書いてあるんだが… > -s Remove all symbol table and relocation information from the exe- > cutable. gcc-3.3.3 です。
599 名前:デフォルトの名無しさん mailto:sage [05/03/17 22:39:41 ] >>597 それって stdio のせいで遅くね?
600 名前:デフォルトの名無しさん mailto:sage [05/03/17 23:00:46 ] writeはエラー処理がめんどくさい。 全部書けなかった時とか、EINTRとか。
601 名前:デフォルトの名無しさん mailto:sage [05/03/17 23:09:51 ] #include <stdlib.h> #include <stdio.h> #define BUF_SIZE 256 int main(void) { int i; char buf[BUF_SIZE]; for (i = 1; i <= 100; i++) { snprintf(buf, BUF_SIZE, "factor %d", i); system(buf); } return 0; }
602 名前:デフォルトの名無しさん mailto:sage [05/03/17 23:14:47 ] >>598 うちはgcc-2.95.3ですた。 gcc-3 になって心を入れ換えた?
603 名前:デフォルトの名無しさん mailto:sage [05/03/18 00:16:34 ] >>600 fputs() でも一緒だと思うが...。
604 名前:デフォルトの名無しさん mailto:sage [05/03/18 01:20:27 ] うんにゃ。 少なくとも全部書けなかった場合については、 fputs() は、内部で再試行してくれます。 むか〜しの SVR4 が、これをやってくれなくて欝だった ような覚えがあるが。
605 名前:デフォルトの名無しさん mailto:sage [05/03/18 02:55:44 ] >>604 初期のSVR4はsignalの振る舞いが、 defaultではBSD風じゃなくて、SVR3風だった。すぐに変ったけど。 だからsystem call中に、signalを受けると、エラーで失敗した。 ライブラリもsystem callに再入せず。(BSDセマンティクスだとする)
606 名前:じじー mailto:sage [05/03/18 04:17:10 ] >>605 > defaultではBSD風じゃなくて、SVR3風だった。すぐに変ったけど。 これは、今でもそうじゃない? signal(3) はデフォルトでは SA_RESTART しない筈。 で、ここで書いた write(2) の再試行ってのはシステムコール リスタートの話じゃないの。それならまだ許せる。 初期の SVR4 では、write(2) が第3引数よりも少ない正の値を 返した場合 (つまり partial write の場合)、残りを単に捨て ちゃってたような気が… つまり完全にバグ。
607 名前:じじー mailto:sage [05/03/18 04:18:58 ] 補足。 partial write の残りを捨ててたのは stdio ライブラリね。
608 名前:デフォルトの名無しさん mailto:sage [05/03/19 12:45:25 ] >> 592 さん gcc の man には こう書いてありますが。 The information in this man page is an extract from the full documentation of the GNU C compiler, and is limited to the meaning of the options. This man page is not kept up to date except when volun teers want to maintain it. If you find a discrepancy between the man page and the software, please check the Info file, which is the authoritative documentation.
609 名前:デフォルトの名無しさん mailto:sage [05/03/20 00:43:02 ] >>601 え れ が ん と(ニコリ
610 名前:デフォルトの名無しさん [05/03/20 02:47:45 ] 標準C言語スレで聞いたら怒られたのでこちらで質問させてください。 mmapの動作に関する質問です。 //#include *は省略 #define SIZE 536870912 int main() { void *map; int fd = open("tmp_file", O_RDWR); size_t size = (SIZE / getpagesize() + 1) * getpagesize(); map = mmap(0, size, PROT_READ | PROT_WRITE, MAP_FIXED, fd, 0); munmap(map, SIZE); return 0; } というプログラムを動かすとバスエラーになってしまいます。 また、変数sizeを使わずにSIZEを使うとセグメントエラーになります。 mmapはファイルをメモリに全部読み込まずに必要な分だけキャッシュする とmanに書いてあるように読めたのですが、間違いでしょうか。 環境はFreeBSD 5.3R, gcc 3.4.2です。メモリは512MBです。
611 名前:デフォルトの名無しさん mailto:sage [05/03/20 03:15:56 ] 商用UNIXだったら分かるんだけどなー。
612 名前:デフォルトの名無しさん mailto:sage [05/03/20 03:45:13 ] >>610 mmapに渡してるsizeとmunmapに渡してるSIZEは同じなのか? つーかちゃんとエラーチェックしろよ。 とりあえずstraceでもしてみれば?
613 名前:デフォルトの名無しさん mailto:sage [05/03/20 04:06:01 ] >>610 > #define SIZE 536870912 これって二進で100000000000000000000000000000、30bitじゃん。 幾らなんでもでかいだろ。 そのカーネルはユーザ空間どれくらいとれるの? 詳しいところ調べるの無理だったら、UNIX板のFreeBSD質問スレが良いかも。
614 名前:デフォルトの名無しさん mailto:sage [05/03/20 06:18:36 ] 問題は>>613 や>>612 が指摘している点もあるが、それ以前に、 第一引数が 0 なのに MAP_FIXED を指定している点もある。 0番値から連続で512MBも置き換えたら、現在実行している プログラムからなにから全部置き換えになるから、そりゃ コアダンプもするだろ。 それから、flags には、必ず MAP_PRIVATE か MAP_SHARED のどらかか片方は指定するようにしろ。 あと、>>612 が言うように、システムコールがエラーで返って ないか調べて、エラーだったら perror() なりerr() する習慣 をつけろ。基本中の基本。 これだけ短いプログラムに、なんでこんなにたくさんバグを 入れられるのかが謎だ。もっと人の書いたちゃんとしたプログラム を読んで真似する習慣をつけるべき。
615 名前:デフォルトの名無しさん mailto:sage [05/03/20 06:57:39 ] どっかのクズサンプルをつかまされたのだろうきっと
616 名前:デフォルトの名無しさん mailto:sage [05/03/20 10:47:37 ] バグと言っていいかどうか微妙だなw
617 名前:610 mailto:sage [05/03/20 11:46:33 ] >>612 あ、SIZEはtypoです。実際は両方ともsizeを指定してます。 あと、エラーチェックもperrorを実際は入れてます。 長くなると迷惑かと思って省略してしまいました、ごめんなさい。 >>613 その辺をうまくよきに計らってくれるのがmmapだと認識してたのですが・・・ 間違いでしたか。 >>614 flagsにMAP_PRIVATEを入れたら行けました。 何か勘違いしてるみたいなのでもちっとじっくりmanを読んでみます。 ありがとうございました。
618 名前:デフォルトの名無しさん [05/03/20 12:35:43 ] 仮想メモリ空間が足りないのに良きに計らうもクソも無いだろ
619 名前:デフォルトの名無しさん mailto:sage [05/03/20 13:37:38 ] >>613 >>610 ではないだが > 30bitじゃん。 > 幾らなんでもでかいだろ。 なんで? ふつうに, mmap(0, 1024L*1024L*1024L, ...) って, 使えてるが. FreeBSD でも Solaris でも IRIX でも... CPU アーキテクチャにもよるだろうけど, 32bit あれば 2G のユーザ空間確保できるのが普通じゃねぇの.
620 名前:デフォルトの名無しさん mailto:sage [05/03/20 13:42:05 ] >>619 > CPU アーキテクチャにもよるだろうけど, 32bit あれば > 2G のユーザ空間確保できるのが普通じゃねぇの. なことはない。
621 名前:デフォルトの名無しさん mailto:sage [05/03/20 13:47:05 ] >>620 > なことはない。 だから, なぜだか教えてほしいって言ってるじゃん. backing store に指定容量以上ののファイルとか, 十分な量の swap 持ってきてもだめなの?
622 名前:デフォルトの名無しさん mailto:sage [05/03/20 13:55:44 ] よくあるケースは、 ・32bitアドレス空間を、半分カーネル空間 ・ユーザ空間の半分をテキスト領域 ・残りをスタック領域とデータ領域 ・sparseであることを仮定したmmap設計 などなど x86はセグメントありますから、32bit全部データ領域は可能。
623 名前:デフォルトの名無しさん [05/03/20 14:02:45 ] UNIX userはやたらとalphabetで書きたがるね。
624 名前:デフォルトの名無しさん [05/03/20 14:04:35 ] それが UNIXer quality
625 名前:621 mailto:sage [05/03/20 14:08:40 ] >>622 > よくあるケースは、 > ・32bitアドレス空間を、半分カーネル空間 mips あたりだと CPU が, そうゆう設計ですよね. > ・ユーザ空間の半分をテキスト領域 こんなのって本当にある? バイナリの仕様次第か? FreeBSD とか, 昔の SunOS-4 なんかだと 2^32/2 - text+maxdsiz+maxssiz が, mmap で使用可能な空間ですよね? > ・sparseであることを仮定したmmap設計 > などなど 64bit ならまだしも 32bit でやるかなぁ??? > x86はセグメントありますから、32bit全部データ領域は可能。 トロくなりませんか, OS が?
626 名前:621 mailto:sage [05/03/20 14:11:15 ] > mmap で使用可能な空間ですよね? ごめんなさい, mmap(NULL, ..., /*MAP_FIXED ではない*/) の話.
627 名前:デフォルトの名無しさん [05/03/20 15:58:01 ] そもそもmmap自体がポータブルじゃないので 良きに計らえとか言ってると火傷します
628 名前:デフォルトの名無しさん mailto:sage [05/03/20 16:38:42 ] Windows使うのが安全。
629 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:10:23 ] 同意。 わざわざ面倒なことする必要もない。
630 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:13:25 ] FreeBSD/i386 を含め、386BSD から派生した OS は i386 上だと、VM_MAXUSER_ADDRESS=3G くらいだから 512MB くらいなら mmap できることが多いよ。 KVM を広げるようにカーネルを config してたり、 他にいろいろ mmap してたりすると 別だし、 0番値から MAP_FIXED で mmap してたらまずいけど。 >>617 は MAP_PRIVATE を入れただけじゃなくて、 MAP_FIXED は取り除いたんじゃないかな。 m68k 用 NetBSD は、カーネルとユーザ空間に別の 仮想空間を使っているので、ユーザ空間だけで 4GB 使えたり。 ユーザー空間が 4GB/2=2GB って OS は多いけど、 text に 2GB/2=1GB も割り当てるなんてもったいない ことしてる OS はないと思う。text は、実行ファイル に含まれている分しか確保されない。むしろ、 ヒープと stack の中間に shared library 用の mmap 領域があったりすることが問題。
631 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:13:47 ] >>627 mmap は、いまや POSIX.1:2004 に含まれているので、 そこそこポータブルですが、なにか? Linux や *BSD など、POSIX.1:2004 をフル実装して ない OS でも、mmap に関しては、ほぼ POSIX.1:2004 の仕様を満たしているよ。もっとも、定義されている のは、各 OS の最大公約数程度の機能だけど。
632 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:15:24 ] >>628 Windows のメモリマップドファイルって、ローカル ファイルシステムはマップできるけど、リモートに ある奴は駄目という不便な仕様だった記憶があるけど 今では直ったの? UNIX の場合、当然そんな制限はありません。
633 名前:デフォルトの名無しさん [05/03/20 17:28:28 ] >>631 POSIXに含まれている=ポータブルではない。 「そこそこポータブル」って何だよ。 > mmap に関しては、ほぼ POSIX.1:2004 の仕様を満たしているよ。 本当に?A LinuxとB LinuxとC LinuxとD LinuxとFreeBSDで使えても ポータブルとは言わないよ?
634 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:32:10 ] わははは! ペイントハウスで思いのままだ!
635 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:37:57 ] >>633 > 本当に?A LinuxとB LinuxとC LinuxとD LinuxとFreeBSDで使えても > ポータブルとは言わないよ? で、君は使えない処理系の一つでも挙げればいいんだけど、自分は何も知らないけど煽ってるだけと言うことでいいの ?
636 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:46:23 ] >>633 POSIX.1:2004に書いてある仕様なら、Solaris, IRIX, Tru64, HP-UX, AIX は使ってないので知らんが。これで現在でもメンテされている 商用UNIXはほぼ全部。ちなみにこの程度の範囲の仕様なら、いにしえ の SunOS4 でも通用する。 mmap はシステムコールなので、別に A Linux, B Linux なんて 言わなくても全部の Linux で同じ動作だし、あの範囲の仕様な ら、実際に Linux でも通用する。FreeBSD に限らず、全ての 4.4BSD 派生 OS でも通用する。 最初にまともな実装が登場した SunOS4 の時代ならともかく、 あれから 15年も経った今でもポータブルでないっていうのは 時代遅れだと思う。
637 名前:636 mailto:sage [05/03/20 17:48:22 ] 編集してたら文章が欠けた… > POSIX.1:2004に書いてある仕様なら、Solaris, IRIX, Tru64, HP-UX, > AIX は使ってないので知らんが。 POSIX.1:2004に書いてある仕様なら、Solaris, IRIX, Tru64, HP-UX は 少なくとも満たしている。AIX は使ってないので知らんが。
638 名前:デフォルトの名無しさん mailto:sage [05/03/20 18:21:48 ] 611の言ったとおり、やっぱり商用UNIXじゃないとな。
639 名前:デフォルトの名無しさん mailto:sage [05/03/20 18:32:28 ] >>638 だったらAIX以外ならOKよ。 AIXは、mmapは大丈夫かもしれんが、そもそもOSが変態だから やめた方がいいかもしれん。
640 名前:デフォルトの名無しさん mailto:sage [05/03/20 18:34:24 ] > A LinuxとB LinuxとC LinuxとD Linux ワロタ
641 名前:デフォルトの名無しさん mailto:sage [05/03/20 18:45:28 ] ここで質問すると、かならず無駄に互換性の話まで拡大するのな。 大抵の質問者が環境書かないからだと思うけど、 今回は環境かいても無駄だった。
642 名前:デフォルトの名無しさん mailto:sage [05/03/20 18:55:20 ] で、件のFreeBSDでは動くのかというと、正確な所は誰も知らないと言う・・
643 名前:デフォルトの名無しさん mailto:sage [05/03/20 18:58:03 ] POSIX.1:2004 の範囲ならFreeBSDでも動くよ? 元々の610のプログラムはバグバグなので、どのOSでも動かん。
644 名前:デフォルトの名無しさん mailto:sage [05/03/20 19:13:13 ] たぶんWindowsなら動くんだよ。
645 名前:デフォルトの名無しさん mailto:sage [05/03/21 02:25:57 ] 特定のUNIXモドキ、しかも商用UNIXじゃないんだから 正確なところが分からなくても仕方ないと思う
646 名前:デフォルトの名無しさん [05/03/21 03:22:59 ] basename()が引数の指す先を変更することってあるんですか?
647 名前:デフォルトの名無しさん mailto:sage [2005/03/21 03:49:09(月) ] >>610 どこの本やサンプルを見たらあんなコードになるのか興味深い 駆逐したいのでどこを参考にしたのか教えて欲しい。
648 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 09:16:03 ] >>646 ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/basename.3.html >path の内容を変更することがある。 だそうだ。
649 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 09:43:42 ] ちゃんと嫁
650 名前:デフォルトの名無しさん [2005/03/21(月) 11:50:10 ] >>648 どちらかに決まってないんじゃ、呼び出した後free()すべきか どうかどうやって決めればいいんでしょう?
651 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 12:21:58 ] free() ? 自分が確保したものは自分で free() するのが基本。 strdup() みたいに、ライブラリ内で確保するやつもいるけど、そういうやつはマニュアルに書いてある。
652 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 12:35:46 ] >>650 > dirname および basename は、静的に割り当てられたメモリへのポインタを > 返すことがあり、これらの領域は後の関数呼び出しで上書きされるかもしれない。 …の部分に対する疑問? それなら、 char * path = "foo/bar"; char * path_dup = strdup(path_dup); char * path_dir = dirname(path_dup); して、 free(path_dup); すればいいだけだと思うが。 path_dup = dirname(path_dup); みたいにすると、path_dup が strdup で確保したメモリじゃない可能性があるから、 free() するべきかどうか分からなくなるがね。
653 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 13:07:56 ] >>651 gethostbyname(3)なんかは、「*で返すのはstatic dataだべ」って書いてある。 www.opengroup.org/onlinepubs/007908799/xns/endhostent.html のAPPLICATION USAGE
654 名前:デフォルトの名無しさん [2005/03/21(月) 13:09:13 ] >>652 > char * path = "foo/bar"; > char * path_dup = strdup(path_dup); > > char * path_dir = dirname(path_dup); ここでpath_dirの指す先がpath_dupの中かもしれないので > free(path_dup); ここでfree()してしまうとpath_dirが使えなくなりませんか? 何かすごくおかしいことを言っているのだろうか・・・
655 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 13:12:18 ] >>654 おまえ読解力ゼロ
656 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 13:26:42 ] >>654 付け加えると、path_dirは必要ならすぐに自前の領域にコピーしておくこと。 ∵basename()を再度呼び出すと上書きされるから。
657 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 14:02:44 ] >>652 > char * path_dup = strdup(path_dup); < char * path_dup = strdup(dup); 通りすがりに、取り合えず訂正しておくわ
658 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 14:03:51 ] >>657 m9(^Д^)プギャー
659 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 14:05:50 ] >>657 < char * path_dup = strdup(path); 間違えたわ…ハズ
660 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 18:31:51 ] >>652 「静的に割り当てられたメモリ」ってのはライブラリがstaticに持ってるバッファだと 言ってるように読めるんだが(バッファじゃないがerrnoみたいな)。 であるとすれば、free()するとおかしなことになるよな。 >>651 が言ってるのはそういうことじゃないの?
661 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 18:34:51 ] strdup1つでここまで引きずるとは、さすがUNIX
662 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 18:42:03 ] >>660 だから basename の返り値を free しなきゃいいわけで、 basename に与えたポインタを free するのは問題ないだろ?
663 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 18:58:49 ] ここは小学生の溜まり場かよ。
664 名前:デフォルトの名無しさん mailto:sage [2005/03/23(水) 02:23:26 ] >>660 が正しい。POSIX仕様であっても、basename()は 引数で与えられた領域を上書きすることはない。だから、 上書きされることを気にしてstrdup()する必要もない。 どうもglibc-2.2.1までのPOSIXバージョンは、POSIXの 解釈を間違えていて上書きしてたことがあったようだが。 これはglibc特有のバグで、glibcを使ってなければ関係 ない。>>648 の和訳のバグセクションは、そのあたりが 誤訳っぽいな。glibc-2.2.1より後でも問題があるように 読めてしまう。英語マニュアルを見れば明らかなんだが。
665 名前:デフォルトの名無しさん mailto:sage [2005/03/23(水) 05:35:24 ] >>664 POSIXはどうかしらないけど、FreeBSD5.3だと char * basename(const char *path); って定義になってるから、引数のバッファは変更されることはなさそうね。 ついでに、返り値は「a pointer to internal static storage space」を返すとなってる。 >>652 にあてはめるならこんな感じか。 char * path = "foo/bar"; char * path_dir = strdup(dirname(path)); /* ここでpath_dirを利用 */ free(path_dir);
666 名前:デフォルトの名無しさん mailto:sage [2005/03/25(金) 14:31:04 ] 666 ∈(・◎・)∋ 666
667 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 14:48:43 ] 要するに、basename(3)使うときに、strdupもfreeも要らないわけだ
668 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 19:16:44 ] (゚Д゚)ハァ?
669 名前:デフォルトの名無しさん mailto:sage [2005/03/27(日) 02:54:15 ] >>667 うん。ただし、basename(3)を複数回呼んで、その返り値を 後でまとめて使うような場合はmalloc(3)が必要となる。
670 名前:デフォルトの名無しさん mailto:sage [2005/03/27(日) 11:34:39 ] 別に固定バッファでもいいわけだが。
671 名前:デフォルトの名無しさん [2005/03/29(火) 17:59:02 ] 一つのプログラムファイルからしか使わない構造体があったとして それをヘッダファイルではなく、foo.cの中で宣言定義するのってのは、 スタイル的に問題ないのでしょうか?
672 名前:デフォルトの名無しさん mailto:sage [2005/03/29(火) 18:00:46 ] ここで質問する事が問題
673 名前:デフォルトの名無しさん mailto:sage [2005/03/29(火) 18:36:19 ] >>672 BSDのソースではあまりみかけないのに、Linuxでは沢山あるので
674 名前:デフォルトの名無しさん mailto:sage [2005/03/29(火) 20:13:11 ID:] 漏れは、他のファイルに見せる必要の無いものは、 実際に見えないようにすべき、と考えます。 unixとは全然関係ないけどね。
675 名前:デフォルトの名無しさん mailto:sage [2005/03/29(火) 20:23:30 ] させたいことと出来ることを一致させるのは大切ですね
676 名前:デフォルトの名無しさん mailto:sage [2005/03/30(水) 16:22:54 ] >>674 俺も ノシ
677 名前:デフォルトの名無しさん [2005/03/31(木) 15:18:49 ] suse9.1上でcを使って、ファイルサイズの取得方法を教えてください
678 名前:デフォルトの名無しさん mailto:sage [2005/03/31(木) 15:21:08 ] >>677 stat()
679 名前:デフォルトの名無しさん mailto:sage [2005/04/02(土) 23:47:35 ] hcreate()ってプログラムの中でひとつのハッシュ表しか使えないんですか? だとしてこれは役に立つことがあるんでしょうか?
680 名前:デフォルトの名無しさん mailto:sage [2005/04/03(日) 01:03:52 ] そりゃあるでしょ。 複数使いたければ、hcreate_r()使いなよ。
681 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 01:13:50 ] hcreate() なんてシラナンダ。自作してた…。 hcreate_r() は GNU 拡張か。
682 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 01:50:35 ] >>681 プラットフォームによってはバグってたりするから使わない方がいいよ 追加できるエントリ数にこっそり上限があったり
683 名前:デフォルトの名無しさん [2005/04/05(火) 10:51:56 ] program_a が program_b を呼び出すようにしています. gdb で program_b の動作をデバッグするには どうすればいいのでしょう?
684 名前:デフォルトの名無しさん [2005/04/05(火) 11:15:04 ] >>683 program_b の最初の辺りに sleep なり, 入力待ちなりを入れといて, ps | grep program_b して gdb <pid-of-program_b> する. どっちかってゆうと, ウニ板のくだ質ネタだが...
685 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 12:09:45 ] >>683 "program_b arg1 arg2" ↓ "gdbserver localhost:20000 program_b arg1 arg2" $ gdb gdb> target remote localhost:20000 gdb> break xxx gdb> continue
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を入れながらポーリングするのでしょうか?
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]
811 名前:デフォルトの名無しさん mailto:sage [2005/05/04(水) 16:12:01 ] このスレにあったような。
812 名前:デフォルトの名無しさん mailto:sage [2005/05/05(木) 23:01:54 ] 質問です。 fork/execして生まれた子が親の死を感知する方法で一般的な 方法はあるのでしょうか?(initに引き取られると困る) 調べると「システムによってはSIGHUPが...」とかという記述で 一般的な方法は見つかりませんでした。 もちろん、「そんな親プログラムを作るな」というのは承知しているのですが...
813 名前:デフォルトの名無しさん mailto:sage [2005/05/05(木) 23:17:20 ] ないんじゃないでしょうか。 どうしても知りたければお爺さんプロセスから教えてもらうようにするとか。 ちなみにSIGHUPは親プロセスの死とは直接関係ないですよ。
814 名前:デフォルトの名無しさん mailto:sage [2005/05/05(木) 23:38:01 ] ncursesを使ったソースでなるべくシンプルなものってないでしょうか お手本にしたいのですが
815 名前:デフォルトの名無しさん mailto:sage [2005/05/05(木) 23:43:53 ] $ cd ncurses-5.4/test $ ls Makefile.in README aclocal.m4 background.c blue.c bs.6 bs.c cardfile.c cardfile.dat color_set.c configure* configure.in demo_defkey.c demo_forms.c demo_keyok.c demo_menus.c demo_panels.c ditto.c dots.c edit_field.c edit_field.h filter.c firework.c firstlast.c gdc.6 gdc.c hanoi.c hashtest.c ins_wide.c inserts.c keynames.c knight.c listused.sh* lrtest.c modules ncurses.c ncurses_tst.hin newdemo.c railroad.c rain.c tclock.c test.priv.h testaddch.c testcurs.c testscanw.c tracemunch* view.c worm.c xmas.c
816 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 00:17:10 ] >>812 親のみが書き手、子が読み手のpipeを用意する。 親が死んだら子によるread(2)の返り値が0になるはず。 とか。一般的かどうかは知らない。
817 名前:812 [2005/05/06(金) 00:35:30 ] >>813 >>816 レスありがとうございます。やはり一般的な方法はないですか・・・ パイプとかPID監視とかの代替案を使うことにします。
818 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 01:09:12 ] >>812 > (initに引き取られると困る) ここが引っ掛かっていてスルーしていたんだけど、 これどういう意味なの? 何が困るの? pollingでいいなら、IPCのセマフォ使うとか。
819 名前:デフォルトの名無しさん [2005/05/06(金) 01:17:25 ] p231.net220148094.tnc.ne.jp/ wwwwwwっwwwwwwっうぇwwwwwwwwwwww wwwうぇwwwうはっwwwっ おkwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
820 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 03:26:12 ] >>812 kqueue/keventがあるOSなら任意のpidのexitしたのがわかる。
821 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 06:08:03 ] >>812 適当にシグナル投げてみるとかは?
822 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 06:24:26 ] >>821 能動的にアクション起こしていいんなら getppid()!=1 で十分だろう
823 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 02:48:42 ] wchar_t wb[] = L"ほげ"; printf("%S",wb); や wchar_t wb[20]; initscr(); getn_wstr(wb, 20); printw("%S",wb); は問題なし wchar_t wb[] = L"ほげ"; initscr(); printw("%S",wb); は ^[$B$[$2^[(B こんな風に表示されてしまう setlocale(LC_ALL, "");してみても変化無し 何が足りないんでしょう
824 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 03:05:39 ] シェルで日本語出すように設定してないだけじゃねーの?
825 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 07:14:54 ] 出力はISO-2022-JPに見える。 ターミナルのlocaleはそれでいいのか?
826 名前:デフォルトの名無しさん mailto:sage [2005/05/07(土) 18:29:50 ] >>822 getppidなんてはじめて知った おくがふかいなぁ
827 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 07:09:50 ] プロセス間でデータをやりとりするにはどうしたらよいのでしょうか? WindowsにおけるWM_COPYDATAのような方法を探しているのですが。
828 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 08:35:35 ] 親子、あるいは親戚関係にあればpipe(2)、 そうでなければmmap(2)、IPC共有メモリなど。
829 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 16:03:44 ] Xwindowで動作するプログラムを作りたいのですが、どこから勉強していけばよいのでしょうか? C++でコマンドラインプログラムは書けます。
830 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 17:30:24 ] 今さらXlibでもあるまいから、まずは使うGUIツールキットを決めなされ。 多分GTK+かQtのどちらかになると思うけど。決まったらそのスレへgo!
831 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 20:00:24 ] widestudio とかもあるよ
832 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 20:02:45 ] 最近良く見かけるが、WideStudio の中の人は 2ch で宣伝する方針なのか?
833 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 20:26:28 ] Motifを忘れているよ。 UNIXなら標準だし、ついでにXlibにも詳しくなる。
834 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 20:30:23 ] いつのまに標準になってたのか
835 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 20:46:32 ] Motifはどさ回りの仕事量が増えるけどねぇ。 ツールキットとしては古くて資料も色々あるけど。 それにしても、関数名が長いし。 #XmToggleButtonGadgetGetState()とかw
836 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 20:59:48 ] >>833 >ついでにXlibにも詳しくなる。 詳しくないと使えないっつーか だから避けられるんだっつーか …折れ線グラフひとつ書くのも一苦労でしたよ、ええ。
837 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 00:27:26 ] C++だからQtかgtk--のどちらかだろう。 俺としてはmoc拡張の必要のないgtk--を推奨。 www.geocities.com/SiliconValley/Vista/7184/guitool.html ↑を眺めてみるのもよし
838 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 23:46:19 ] おれならまずXでGUIアプリなんて作らないな
839 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 03:01:37 ] あるプロセスIDのプログラムが実行中かそれとももう終了したのかを確認するにはどうしたらよいのでしょうか?
840 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 03:31:32 ] 詳解Unixプログラミングを読むのが一番早い。
841 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 04:19:01 ] それくらいならFAQにも出てたと思う。
842 名前:839 mailto:sage [2005/05/14(土) 04:48:27 ] /procディレクトリの中のPIDと同じファイルが存在すれば、実行中であると判断しても問題ないでしょうか? 実行が終了すれば必ず消えるものなのでしょうか?
843 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 06:18:25 ] kill 839
844 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 06:20:14 ] >>839 kill(pid, 0)
845 名前:デフォルトの名無しさん mailto:sage FAQ読め、書いてあるから [2005/05/14(土) 06:20:43 ] 間違えた。 kill(839, 0)
846 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 06:36:23 ] まあ、FAQによれば killよりも/procの方が確実に判定できるケースがあるとのことだから そのやり方について聞いているんだろう。 実装(環境)依存としか答えようがなさそうだけど。 関係ないけど、「実行中である」という確実な判定は不可能だな。 なんらかの呼び出しから制御が戻る前に終了する可能性がある。 PIDの唯一性(再割り当てされないこと)が保証されていれば 「終了した」ということは判定できるだろうけど。
847 名前:デフォルトの名無しさん [2005/05/14(土) 06:39:19 ] fork() 関数で子プロセスを生成しました。 親プロセスは、一秒に一回ぐらいの間隔で、子プロセスが終了してるかどうかを確認したいのです。 その間、親では while(1){ 子プロセスの終了してるか監視 終了してれば、処理を抜ける メータ表示 } などのプログラムを動かしたいと思っています。 いろいろ調べたんですがwait()関数なるものが子プロセス終了まで待ちつづけるというものでしたので、子プロセスが動いている間 メータを動かすという処理が出来ませんでした。 子プロセスは、system関数で、別のプログラムを実行しています。 その間、親プロセスで、メータを増やす処理をしたいのですが、子プロセスが終了?してるか調べるwait関数に変わるものは何かあるのでしょうか? ps -aux で確認したところ、子プロセスの処理が終わったらゾンビプロセスになってました;
848 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 06:56:45 ] おまえはタイトルも>>1 も読まないだけでなく 最近の10レスも読まないのな
849 名前:デフォルトの名無しさん [2005/05/14(土) 07:41:43 ] >848 別のスレでもご迷惑をかけました 勝手に書き込んで荒らしてしまって、 すみませんでした自分で調べてみます。 申し訳ありませんでした。 >おまえはタイトルも>>1 も読まないだけでなく >最近の10レスも読まないのな これからは、すべて読んでから書き込みます。 すいませんでした。
850 名前:デフォルトの名無しさん [2005/05/14(土) 07:43:25 ] なんで伝統伝説のUNIX板に聞かないの?
851 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 08:16:29 ] UNIX板気持ち悪いので
852 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 09:54:10 ] >>847 wait3(2)かwait4(2)で、WNOHANG
853 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 13:02:59 ] busy loopなんかするな馬鹿
854 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 21:11:45 ] >>847 なんだそれは?その子プロセスは直接の子では無いではないか。 素直にAPUEを嫁
855 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 21:15:06 ] メータって。プログレスバーじゃねぇの?
856 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 22:40:27 ] sleepをミリ秒単位で実行する方法を教えてください
857 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 22:59:42 ] >>856 usleep
858 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 23:03:30 ] >>857 ありがとう
859 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 23:09:50 ] >>856 nanosleep
860 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 23:57:59 ] select
861 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 11:17:57 ] 社のUNIX遣いの口癖が「だからぁ、子を先に殺すんだよw」なんです。いつも半笑いで。 通報したほうがいいですか?
862 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 12:15:06 ] つまらん。勝手にすれば。
863 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 13:05:55 ] あひゃひゃ
864 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 13:33:11 ] CPUの個数を取得する方法を教えてください
865 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 15:41:24 ] ケースの蓋を開けて目視で確認してください
866 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 15:52:40 ] 最近は目視じゃ不十分だな
867 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 15:54:26 ] BSD系だと sysctl でわかったりする。 Linuxは知らないけど /proc の下あたりになんかあるんじゃ? いずれにしても移植性はないと思う。
868 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 16:58:19 BE:50674853- ] /proc/cpuinfo
869 名前:デフォルトの名無しさん mailto:sage [2005/05/15(日) 17:16:43 ] HTだとわからんな
870 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 01:38:20 ] HTでも/proc/cpuinfoに出るぞ
871 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 02:05:21 ] UNIXでWindowsのDLLの動的ロードのようなことはどのようにやるのでしょうか?
872 名前:デフォルトの名無しさん mailto:sage [2005/05/16(月) 02:13:11 ] >>871 dlopenとかの事?
873 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 02:49:38 ] UNIXでWindowsのDLLのDllMainのようなことはどのようにやるのでしょうか?
874 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 02:52:05 ] どういう挙動を望んでいるのかをなぜ自分で説明しないのだろうか?
875 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 07:14:10 ] man dlopenすれば馬鹿でも分かるように書いてある。
876 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 07:33:33 ] dll自体はどのように書けばよいのでしょうか?
877 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 08:04:37 ] www.linux.or.jp/JM/html/LDP_man-pages/man3/dlopen.3.html
878 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 08:07:35 ] www.linux.or.jp/JF/JFdocs/Program-Library-HOWTO/index.html
879 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 08:18:47 ] リンクをはるだけならバカでもできますが何か。
880 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 08:29:00 ] おー、ここから来たのかと思っちゃったよ。 ex10.2ch.net/test/read.cgi/news4vip/1116266649/
881 名前:デフォルトの名無しさん mailto:sage [2005/05/17(火) 23:47:58 ] ↑典型的なUNIX脳
882 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 10:48:05 ] CPU使用率の取得方法を教えてください
883 名前:デフォルトの名無しさん [2005/05/18(水) 14:57:59 ] >>882 getloadavg(3)
884 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 15:01:00 ] sshでリモートコンピュータにログインして、コマンドを実行するにはどのようにしたらよいのでしょう?
885 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 15:08:33 ] >>882 使っているCPUの数 ÷ 所有しているCPUの数 × 100
886 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 16:30:45 ] >>883 どうやってそういうの見つけるの?
887 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 16:33:08 ] >>886 経験を積む
888 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 17:39:04 ] マニュアルを読む。 kmem, /proc関係 $ cat /proc/loadavg
889 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 20:29:09 ] getloadavgは一部のOSにしか実装されていないはず。 HP-UXだったら、pstat(2)(pstat_getdynamic(2)だったかな)。 Tru64 UNIXだったら、table(2)。
890 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 21:37:02 ] >>886 header を grep すれば大抵ポインタが見つかる
891 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 22:41:24 ] コマンド名もわからないのにヒットするわけねーじゃんヴォケ
892 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 22:47:00 ] 何のコマンド名だよ
893 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 22:57:33 ] Excelの表を印刷するコマンドありますか?
894 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 22:59:47 ] Mac かな? 要件が良く分からんが、スレチガイかと
895 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 23:45:45 ] >>886 同じことを実現しているコマンドを探すor思い出す→wとかuptime→ wのソースを見る→該当部分を探す→getloadavg発見→manで確認 >>889 どうせこんなくだらない質問するやつは犬厨あたりだろうから getloadavgが無いシステムのことは考えなかった。補足サンクスコ
896 名前:デフォルトの名無しさん mailto:sage [2005/05/18(水) 23:54:54 ] 使用環境によって発想が変わって来るようだね
897 名前:? [2005/05/18(水) 23:59:55 ] ソースはイカリ
898 名前:ヽ(´ー`)ノ ◆.ogCuANUcE mailto:sage [2005/05/19(木) 00:01:41 ] >>886 $ man -k 'load average' getloadavg (3) - get system load averages # (゚Д゚)! tload (1) - graphic representation of system load average xload (1x) - system load average display for X
899 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 01:11:50 ] load averageってCPU使用率のことだったんだ ふーん
900 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 02:23:37 ] wcolor_set()で背景色と文字の色をセットしても再描画した部分しか適用されないみたいなんですが うまく背景色で塗りつぶす方法って何かないでしょうか?
901 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 02:42:57 ] man redrawwin
902 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 08:00:00 ] redrawwinしてからリフレッシュしても文字を表示してる部分しか背景色が変わらないです やり方がまずいんでしょうか
903 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 09:27:27 ] man touchwin
904 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 09:29:15 ] man clearok
905 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 11:56:28 ] touchwinもclearokも同じ結果になります 私の頭が悪いだけかもしれませんが・・・
906 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 13:49:19 ] # man -k 'load average' sh: /unsafe/: No such file or directory Error executing formatting or display command. System command /unsafe/ exited with status 32512. Segmentation fault (core dumped) ('・ω・`)
907 名前:デフォルトの名無しさん mailto:sage [2005/05/19(木) 13:55:17 ] >>905 すべておまいが悪い
908 名前:905 mailto:sage [2005/05/20(金) 08:04:37 ] 見当違いのことをずっとやってたことに気付いた(´・ω・`)
909 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 11:11:46 ] sshでファイルをコピーするプログラムはどのように作ればよいのでしょうか? system()で作ってみたのですが、sshのパスワードの反応する部分がわかりません。
910 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 14:59:13 ] scp使え
911 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 18:24:00 ] X Window Systemでクリップボードをいじるにはどうしたらいいのでしょうか? XmClipboard何とかという関数を使ってるんだが、 どうも動きがいまいちなんだが。
912 名前:デフォルトの名無しさん mailto:sage [2005/05/20(金) 22:22:24 ] Windowsにしとけばそんな苦労は無いのに・・
913 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 10:35:04 ] Windowsにしなければ コンピュータウィルス は減っていくのに・・
914 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 10:43:18 ] コンピュータなんてなければみんな幸せなのに。。。
915 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 14:36:56 ] >>914 同意。だけどその種の発言はマ板で(ry
916 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 19:51:23 ] GUIはさ、もうWindowsにまかせようぜ? Xじゃ、どう転んでもだめだわ UNIXはさ、マルチログインって点にまだ救いがあるんだからさ あとtelnet/sslやftpとかで一通りのことできるし 高コストなGUIがいらないって点をもっと誇りに思おうぜ
917 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 20:02:35 ] ssl に突っ込んだら、俺も嵐認定ですか?
918 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 20:18:48 ] >GUIはさ、もうWindowsにまかせようぜ? その態度は (・д・)イクナイ!
919 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 21:14:28 ] GNOME全否定ですか そうですか
920 名前:デフォルトの名無しさん mailto:sage [2005/05/21(土) 22:16:47 ] KDEの方がまだ期待できると思うけどwebmin (+openssl) で充分な今日この頃
921 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 00:23:09 ] XのGUIなんてクソだよクソ KDEやGNOMEはそこそこ頑張ってるけどダメ CDEなんて汚物だな GUIはMacとWindowsに任せてUNIXは得意分野で使おう
922 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 00:26:09 ] >>916 Mac OS X があるじゃん。
923 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 00:40:33 ] タイガータイガーうざったいがー
924 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 02:34:32 ] 究極タイガー
925 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 04:14:10 ] 漏れはUNIXでGUIはまったく使わないけど、 いろいろ存在することに異存はない。
926 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 10:56:09 ] 漏れ的には gnomeとkdeのOKとキャンセルボタンの配置がドナルド式になったのが 気に入らねぇ。 やたらと重いのも気に入らねぇ。 cdeの方がましだ。 ・・・って関係ねぇな。
927 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 10:59:19 ] twm マンセー
928 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 01:17:58 ] M$がこの国の技術者のレベルを圧倒的勢いで低下させた件について
929 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 01:19:05 ] VBが邪悪の根源だったな。
930 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 01:27:10 ] ×技術者のレベルが低下した ○低レベルの人でも技術者顔できるようになった
931 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 01:27:45 ] >>928 全世界の話ならわかるが、この国の技術が下がったのなら 使う日本人が低レベルだったからだろう?M$のせいにするな
932 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 01:35:41 ] ま、シリコンバレーでも通用する奴はごく一部なんだろうな 俺はダメだ
933 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 05:17:15 ] 既存のコンポーネントがないとソートもできないような単なるWindows Tipsヲタが、 自分のレベルが高いと勘違いしてるのがとても迷惑。
934 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 07:22:27 ] STL がないとソートもできないような単なる C++ Tipsヲタが、 自分のレベルが高いと勘違いしてるのがとても迷惑。
935 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 08:23:23 ] UnixとWindows両方でコンパイル出来るコードを書こうと思っているのですが、 Unix上でコンパイルされているかWindows上でコンパイルされているかを 判別するにはどうしたらよいのでしょうか? 対象となるコンパイラは今のところg++、bcc32、VCです。
936 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 08:52:46 ] #ifdef _WIN32
937 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 09:28:28 ] _WIN32 はWindowsコンパイラならどれども定義されているのでしょうか?
938 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 09:35:27 ] 気になるなら__GNUC__,_MSC_VER,__BORLANDC__等を個別に判定すれば? まあ、マルチプラットフォームに対応したライブラリのヘッダが参考になると思うよ。 zlibとかboostとか。
939 名前:デフォルトの名無しさん [2005/05/23(月) 09:54:15 ] >>938 ありがtぽ
940 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 10:10:48 ] ソートが手書きできても、必要な成果物を作り出せなければ 役立たずなわけだが
941 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 11:51:04 ] ソートは例えばの話だろ。 やけにコテコテしたGUIは作れても、その中で動く肝心なものは すでに用意されてるものを呼び出す以上のことはできないつーような話じゃないの?
942 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 12:01:44 ] >>937 全部かどうかは知らないが少なくともMingwにもCygwinにもVC++にもBCCにも定義されてる
943 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 14:45:42 ] よくみんな Windows なんか使ってられるね。 俺は我慢できないそんな環境。 FreeBSD で十分だろ。
944 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:02:00 ] 適材適所
945 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:24:41 ] >>943 ならば今すぐ総てのエロゲをFreeBSDで動作させてみせろ!
946 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:28:03 ] Qemuをインストールとか言い出したりしてw
947 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:31:07 ] >>945 とりあえず、シスプリを動かしてみた。 @@@@ @@@@@ @@@@
948 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:38:33 ] >>945 おまいはエロゲでOS移行するのかよ。
949 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:40:17 ] 通常の発想ではエミュしか無いだろ。
950 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:51:20 ] やっぱり、Windoz厨は低レベルだな。
951 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 15:55:55 ] エロゲヲタのうえに ガノタ か、救いようがないな。
952 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 17:37:32 ] ファイルをゴミ箱に捨てる方法を教えてください
953 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 17:42:30 ] >>952 パソコン丸ごとゴミ箱に放りこめ
954 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 18:34:58 ] ふ〜
955 名前:デフォルトの名無しさん [2005/05/23(月) 19:49:03 ] 初めての書き込みです。 CGIを勉強して「掲示板」等を作成したいのですが、 お薦めのサイトがありましたら、教えて頂ければと思います。 どなたかよろしくお願い致します。
956 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 20:41:38 ] >>955 鼬害
957 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 20:46:52 ] 車輪の再発明が好きなスレはここですか?
958 名前:デフォルトの名無しさん [2005/05/23(月) 21:53:55 ] 車輪を再発瞑して何か悪い?
959 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 21:57:57 ] 勉強するなら勝手だが世には出さないほうがいいかも
960 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 21:58:08 ] よーしパパ宙に浮く車輪を再発明しちゃうぞ
961 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:19:12 ] 無敵の車輪
962 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:25:50 ] 車輪付きの戦艦
963 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 23:31:23 ] すれち
964 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 23:34:25 ] なにかつくろうとするとたいていGNU製のがあったりするので 劣化した車輪の再発明をして遊んでいます
965 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 23:42:40 ] ディアゴスチーニから、 「車輪の再発明」創刊
966 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 00:11:43 ] 車輪の再発明は飽きたので スターリングエンジンの再発明に ステップアップしようと思います。 どうですか?
967 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 00:41:39 ] ロータリーエンジンの再発明に挑戦してみないか? できたらできたですごいが。
968 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 04:05:59 ] 車輪の再発明ってクムホとかハンコックにいってやれw
969 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 08:27:35 ] gccでは一般的にいってc++よりFORTRANの方が高速なのでしょうか?
970 名前:デフォルトの名無しさん [2005/05/24(火) 09:35:53 ] すみません教えてください。 UNIX環境で動くdir(仮称) というプログラムを作りたいのですが 機能としては DOSコマンドのように プログラムのdirを打ち込み 取得したいディレクトリをパラメタに指定すると、その配下のファイル一覧が ズラーと取得できるような処理をイメージしています。 現在、パラメタに与えた、個別のファイルをフルパスで指定すると その情報のみ抽出できるまで試作品は完成しました。 Cで作成しております。取得するための関数はstatを使用しました 考え方としてはwin系apiのFindFirst,Nextが利用できれば嬉しいのですが、 UNIX環境で開発して動作させる場合、このような再帰処理的に連続して 指定配下を処理する場合、どのようにかんがえればよろしいでしょうか? もう1点ですが通常 cc test.cで test.cのコンパイルが行えますが デバッグモードで1ステップずつ挙動をみたい場合、どうすればいいか教えて いただけないでしょうか?長々と書きまして申し訳ありません。 是非、御教授おねがいいたします。
971 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 09:49:14 ] 前半はopendirとS_ISDIRのことかな? よく知らないけど しかししつもんするがわというのはよむがわのよみやすさというものにもうすこしはいりょしてくれてもよさそうなものだが
972 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 09:57:36 ] なんでlsじゃいけないのか知りたいもんだ。
973 名前:デフォルトの名無しさん [2005/05/24(火) 10:03:00 ] >>971 ありがとうございます。そちらのキーワードでググってみます。 分かりづらい文章すみませんでした。 >>972 半年以前のファイル更新日付で時刻部分が落ちてしまいます。 当方環境でlsを使うとsolarisのバージョンが古いので --full-timeが動きません なので、環境に依存しないstatを使えばどのファイルも同じ条件で列挙 出来るものだと考えました。
974 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 10:26:38 ] >>973 それならfind使えば?
975 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 10:29:54 ] >>973 自作したい理由が判らん。 例えば特定の名のファイル(stdで始まるインクルードファイル)を特定のディレクトリ群(/usr,/opt)以下から 探し出して日付けを知りたいなら、 find /usr /opt -name 'std*.h' -print|xargs ls -l とかできるわけだけど。
976 名前:デフォルトの名無しさん [2005/05/24(火) 10:44:22 ] >>974 >>975 レスありがとうございます。当方環境では find でもls-lでも 半年以前のファイル更新日付だと 時刻部分が飛んでしまうので自作で検討いたしました。
977 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 11:09:50 ] >>975 >976は時刻も知りたいらしいからls実行しちゃダメじゃんw つーか、-printじゃなくて-lsでいいべさ。 >>976 つーことで、find . -lsなら時刻は出るべ。
978 名前:デフォルトの名無しさん [2005/05/24(火) 11:15:29 ] >>977 さん レスありがとうございました. 表示形式は変ったのですが、やはりfind -lsでも時刻部分は 飛んでしまって表示されません。半年以内のファイルであれば 時刻まで表示されています。
979 名前:975 mailto:sage [2005/05/24(火) 11:24:50 ] あぁそうか。時刻が落ちるってそう言うことか。 そんじゃ、>>975 のxargs以降をxargs tar cf -|tar tvf -でどうだ? #いや、最早冗長すぎるけど。 ##そこまでするならgnuのlsのソースでも見ればいいような。 ###まぁ、gnuのlsをコンパイルすればいいのか。 >>977 findの-lsは無駄に情報量多くて好きじゃないもんで。順番もヒット順だし。 で、findの-lsも時刻は出ないってば。
980 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 11:26:36 ] 適当につくったけど…こんなの? -rで再帰、-tで最終変更時刻表示。 begin 644 dir.c.gz M'XL("$^/DD(``V1I<BYC`'U4;4_;,!#^G/R*6ZI"`@7*)+ZLP(2T#YO$IFEL MTB1`57`<:M$ZE>W`JJG_?7=GUR6IABI5]KT\?N[NN0R4%O.VDG!N5_;$K9;2 M'L\NTT'';%WINM9*&:E[ME8KZZJNS:F%[.&Y2C4[IKEZZ-N,TH]D2Y\;5<$2 MKYAI<M%HZT#,2@,'KC2/DJPC0"^8>EX^^J.C8Y'^39-/7W[``89,T@0Q6^'` M<X<#_#,K-*L:\AR-<`'-4FIZ)`(7!5Q<P+=?U]<%(%A2,X\Z1\K2F%$F2JT; M%_.&MKC3V0BV^8B?&.E:H_&T3I.7F9I+R/EM?-#(LJ)$_Q2]0&R0J%@L\^P8 MH3CRZ+*:ZG(A"]C;@^C==1/$0-6ZDC5\O_KY>?KUZG<ZP)O2,AK@_=E9.B#" M-;Z7<"L?VOIVX[\GSIMFT>C!HIN-1.[=:W:O&D5^RA++58[QHRSCXA,YMY(K MZWA[+?*^TGE?=A)RUVG/TRTW$-TX]XAG$8D!XF%HVM#"T2)O#!8DSYZ1C MZZ8+NA9;SKU$GFL'G^56A-+(<#/]<H-RRR-B4\G0ER3JEY\.2O4,8Z5K5HB8 M-U9N-#%)UVE*@EZ42N=TP+:)4=`_GI]O[UGFY!(C-?$GQD=YC</=O;H'!9YZ MY@*M.(=FZ7*/3)@X`>/\"*@N03MP=,J5/*!BG\AA7Y03,W2&#H@2Q[QO]C]P MO1L"IWZX,2N$N1#FW@[[&,+Z6]?J)]V\:%P[IQI]A[^@ET3^40Y+XPO*OFSG M#CH8$$%\U>"74U;<TE(X:4#@W&`\;!@8>[V+S9,*7PYJ&QPQ%UWQYV+L6Q)' MSIO2'_D:XF+4C8%<\>>',":@X)SGC*?#P]#?_^XCZY^5H.XW.X#Y8R\\_%PB M9BMC^!LBC80CVJY.XV;T-FQGQ2+&&VNV1>LO6LC>-MMW?\P+\0_>^P6,M`8` !`"MC ` end
981 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 12:30:10 ] ls -R -1 | sed 's,:$,,g' | xargs stat
982 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 12:39:30 ] UNIX板のくだ質に出てた更新時刻を全部見る方法 stat tar cf - hogehoge | tar tvf - tcsh -c 'filetest -M: hogehoge' diff -c hogehoge /dev/null | head -1
983 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 13:00:10 ] sys/time.hとtime.hの違いを教えてください
984 名前:デフォルトの名無しさん [2005/05/24(火) 13:08:39 ] sys/
985 名前:980 mailto:sage [2005/05/24(火) 13:19:47 ] 次スレ立てました。 UNIXプログラミング質問すれ Part6 pc8.2ch.net/test/read.cgi/tech/1116908090/
986 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 14:55:14 ] メモリーの無駄
987 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 14:55:46 ] 誤爆スマソorz
988 名前:デフォルトの名無しさん [2005/05/24(火) 21:18:24 ] statなんてコマンドないや〜ン
989 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 21:19:58 ] 最近の*BSDにはあったりするんだな、それが。
990 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 22:45:35 ] Writing Programs with NCURSES web.cs.mun.ca/~rod/ncurses/ncurses.html#introduction これ訳そうと思ってるんだけど需要あるかな
991 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 22:45:55 ] BSDウザイ
992 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 22:48:27 ] >>990 cursesってまだUNIXでは現役なのか。 おれは10年ぐらい前に挫折したよ。 その後UNIXは他人に苦労させたもん勝ちということを理解した。
993 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 23:01:43 ] >>990 需要はわからんが、翻訳すれば翻訳者自身がNCURSESの知識を得れると思うよ。
994 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 23:03:13 ] >>992 には Windows が似合ってるよ。
995 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 23:05:26 ] 『Unix と C は究極のコンピュータウイルスである』 って古の Lisp Hacker が言ってたね まぁ最近は苦労するって言ってもたかが知れてるけど
996 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 23:15:24 ] 曇りときどき晴れ、ところにより雷雨
997 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 23:25:52 ] >>990 私は現役で使ってますよ。てっとりばやいですから。 どの程度需要があるのかは分かりませんが・・・
998 名前:デフォルトの名無しさん mailto:sage [2005/05/24(火) 23:30:55 ] curses は asm のテキストで使われる事が多い気がする 関数呼び出しの例とかね
999 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 00:06:49 ] これも勉強だと思って訳してみるか
1000 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 00:07:10 ] そして1000
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。