- 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/
- 560 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 07:33:36 ]
- あるマニュアル読んでたら
フォント名はコードに直書きするんじゃなくて .Xresourcesに書けって書いてあるんだけど なんで? 指定フォントの決め打ちなのにわざわざ書かせなきゃいけないの? ってか、どうやって読み込めってんだよ
- 561 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 09:31:59 ]
- 再コンパイルすることなく、
カスタマイズすることができる
- 562 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 09:45:40 ]
- >>559
環境変数を確認するのはことXWindowに関しては常道。 >>560 おまいさんもXWindowに関して基礎から勉強し直した方が…
- 563 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 10:58:37 ]
- XWindowの基礎なんて勉強しても無駄になることうけあい
- 564 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 11:09:11 ]
- 身に付けて無駄になる基礎なんてない。
- 565 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 11:24:32 ]
- Xを使う以上、基本はXを知ることだと思うんだけど
Xの知識が無駄になるってどういうことなの? また違うWindowSystem誰か作ったの?
- 566 名前:560 mailto:sage [2005/07/21(木) 11:46:10 ]
- ありがと
でも決め打ちだよ? そのフォントじゃないと正しく動作しないの それでも、やれっていうの?
- 567 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 12:07:51 ]
- 今使ってるフォントに問題が発覚して
正しく動作する別のフォントに入れ替える必要が出てくるかもしれない。 とかね。 べつにローカルな使用だけでソースが手元にあって いつでもコンパイルできるならなんでもいんじゃね?
- 568 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 12:29:23 ]
- >>565
「Xの仕事が無い」というだけのこと
- 569 名前:565 mailto:sage [2005/07/21(木) 19:43:12 ]
- お前らの人生全て仕事なんだ・・・
寂しいね
- 570 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 20:53:19 ]
- >>569
お、俺を一緒にするなよな? な?
- 571 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 21:11:20 ]
- うーん
でも仕事以外にXって使わないからなぁ・・・
- 572 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 21:58:54 ]
- 家ではWindows使ってるって事?
- 573 名前:デフォルトの名無しさん mailto:sage [2005/07/22(金) 07:56:56 ]
- >>559
> もしかして、screenをデタッチしてやったからコンソールのときのなんかの変数受け継いでるのかな? 「もしかして」じゃなくて調べろよ。 for i in `env | awk -F= '{ print $1 }'`; do (unset "$i"; ./a.out); done どうせ全然違う原因だと思うが。
- 574 名前:デフォルトの名無しさん mailto:sage [2005/07/22(金) 08:36:40 ]
- なにがしたいのかがまったくわからん
- 575 名前:デフォルトの名無しさん mailto:sage [2005/07/22(金) 22:48:34 ]
- 単に XOpenDisplay() に失敗していたけどエラーチェックして
なくて、disp == NULL で落ちてたってだけじゃないの?
- 576 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 11:01:11 ]
- C/C++質問スレから誘導されてきました。
子プロセスの標準出力と標準エラー出力を親プロセスで取りたいのですが、 たまに出力を取る部分で止まってしまいます。fgetsしているところで止まっている ので、eofがくるまで待っているのか、とも思っているのですが・・・。 子プロセスの標準出力と標準エラー出力を別に取りたいので、forkしてパイプを つなげる必要があると認識しています。 テストでつかったソースは以下のアップローダにupしました。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/819.c #main関数内で起動用のコマンド文字列を作っているのですが、 #このソースでは省略しています。 このような時、どうすればよいのでしょうか。どなたかご教授ください。
- 577 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 12:05:12 ]
- 子側でstderrのバッファが満杯になってブロックされてんじゃないの?
- 578 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 12:19:30 ]
- selectかスレッドを使って読み出せ。
- 579 名前:576 mailto:sage [2005/07/30(土) 12:55:27 ]
- アドバイスありがとうございます。
> 577さん バッファが満杯でブロックされてる場合は578さんが書いているように 1.スレッドで満杯になる前に逐次読み出してやる 2.selectでタイムアウトを設定する という形でしょうか。 > 578さん スレッドはぱっと調べた結果、手に負えそうもないので、selectについて調べてみました。 selectはファイルディスクリプタが読み書き可能になるまで待機して、準備できた場合は 1以上を返す、という理解でよろしいのでしょうか。 #上記のブロックされた場合はタイムアウトでbreakする? selectを使って色々いじってみます。
- 580 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 14:49:47 ]
- select(2)やってみる前に、
とりあえずstrace -p PIDを全てに試してみたらどうなのよ? # Solarisだとtruss ありがちなのが、bugで誰も書いてないpipeを読んでいるケース。
- 581 名前:576 mailto:sage [2005/07/30(土) 19:23:22 ]
- > 580さん
straceですか。そのようなコマンドがあることは知りませんでした。 #ものすごい今更ですが、Linux/gcc環境なので #straceで使えました。 早速実行してみた結果、以下のように・・・ $ strace -p 19592 write(2, "書き込みメッセージ・・・"..., 46 $ strace -p 19590 read(3, もしかして580さんの仰るとおり読み出すpipeが違うのでしょうか。デバッグライト では、子プロセスの書き込み先は対になる4だったのですが・・・。 メッセージを読み出せる場合の方が多かったので油断していました。
- 582 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 19:37:43 ]
- >>581
>>579の時点で妥当な結論が出ているので580はさくっと無視するのが吉。 どうせあなたのプログラムも読んでない。
- 583 名前:デフォルトの名無しさん [2005/08/02(火) 11:54:06 ]
- kernel2.6系で、システムコールをフックする方法を教えて下さい。
このページには2.4での方法が書いてありますが、2.6ではうまくいかないです。 ttp://www.atmarkit.co.jp/fsecurity/rensai/rootkit03/rootkit02.html 上のページと同じように、sys_unameをフックするソースを晒して下さい!!
- 584 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 11:58:37 ]
- それくらい自分で調べられないお子ちゃまはおいたしちゃダメ。
- 585 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 12:37:43 ]
- >>583
LKM rootkit のソース読めばいいじゃん。
- 586 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 17:30:35 ]
- >> 585
kernel2.6では、結構大変そう。。。 カーネルのバージョン毎にrootkitの対応状況が異なる。 最新版カーネルで、フック&晒しよろろ。 2.6全般のシステムコールをフックするrootkitがあれば、教えてください。
- 587 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 19:24:43 ]
- >>586
いや、だから自分で読めよ。
- 588 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 02:23:45 ]
- >>586
straceは、すべて(!?)のシステムコールをフックしてるんじゃないか? よくしらんがね。
- 589 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 15:55:42 ]
- このスレッドの576で質問させていただいたものですが、また
お知恵を拝借させていただけないでしょうか。 SolarisとLinuxではforkしてexeclpしたときの振る舞いが違う、 という現象で悩んでいたのですが、どうやらshの違いではないかと いうところまで突き止めました。 Linuxの場合、shはbashのシンボリックリンクになっていて、-cでコマンド 起動をするとpidはshと同一になるのですが、Solarisですとshとコマンドが 別のpidになります。 Solarisではforkの返り値のpidでkillしてもコマンドは別pidなので殺せない ようなのです。 Solarisのshでbashと同じ動作をさせるか、何とかして孫(sh->コマンド)のpid を取ってきてkillする方法はありませんでしょうか?。 > 582さん アドバイスありがとうございます。selectでうまく動作させることができました。 #まとめをUPしようかとも思ったのですが、2chでは一般的ではない行為です?
- 590 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 16:09:35 ]
- >>589
いろいろ方法はないではないけどね。 ps出力相当の情報を拾ってきて、ppidがshのpidのプロセスを探すとか。 そもそも、なんでexeclp()でshを動かすのかが問題かな。 シェルを経由しないで直接動かせばいいじゃんと思うわけだ。 killハンドラで子供を殺すプロセスを中継に使うって手もあると思うし。 #まとめは歓迎。この件だけでもこのスレ全部でも、すきなだけやっちゃってくださいw ##で、アップロードはアップローダかどこかに。
- 591 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 17:39:38 ]
- >>588
んなことはない。 共通の入口と出口を抑えているだけでつ。
- 592 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 21:50:42 ]
- >>591
ltraceなんかは純然たるwrapperだわな。 >>589 sh -c 'exec command args'してみれば?
- 593 名前:デフォルトの名無しさん [2005/08/05(金) 16:12:11 ]
- >>589
fork() したら、子プロセスの最初で setsid()して新しいセッション/プロセスグループを作成する。 こうすると kill(-pid, SIGTERM)とかでそのプロセスグループに対して killすることがでけるよ。 こんな感じ child = fork(); if (child == 0) { setsid(); execlp(〜); } 〜〜 kill(-child, SIGTERM); 自作アプリで Firefoxをexec、killしたい時にやりました。
- 594 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 17:10:50 ]
- >>592
ltraceはwrapperじゃないよ。 stepモードで実行して、libcの関数の先頭アドレスにjumpした瞬間を拾って スタック先頭から引数を拾って表示している。だから死ぬほど遅い。 wrapperにすると可変長引数に対応できないからな。
- 595 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 02:07:29 ]
- 現在実行している環境が32ビットか64ビットか判別する方法を教えてください。
- 596 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 02:29:14 ]
- >>595
すべてのUNIXで共通して判別できる方法はありません
- 597 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 02:36:17 ]
- >>595
intの最大値を調べてみたら?
- 598 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 02:38:21 ]
- ILP64かもしれないし
- 599 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 02:39:03 ]
- 違った
LP64かもしれないし(つーか普通そう)
- 600 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 03:16:51 ]
- sizeof(void*)
sizeof(long) sizeof(int) の結果を見て好きなように解釈すれ
- 601 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 03:22:37 ]
- お前らアホか?
CPUのことだろ? dmesgでCPUみたらいいだろ
- 602 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 03:26:28 ]
- スレのテーマ的には実行中のプログラムが自分で判断する方法ということでは?
- 603 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 03:27:20 ]
- >>595
実行してる環境の「何が」32ビットか64ビットかによって判定法が異なる。
- 604 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 03:55:47 ]
- 目的に応じてautoconfのマクロを自分で書けばよかろ
- 605 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 04:34:51 ]
- >>601
OSが64bitであろうと32bitであろうと、 実行環境のbit数は関係ないだろう。emulatorかもしれないんだし。
- 606 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 12:28:22 ]
- >>601
そもそも dmesg が入っているとは限らない。
- 607 名前:デフォルトの名無しさん [2005/08/07(日) 12:47:21 ]
- uname -aはどうでしょう?
- 608 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 13:02:41 ]
- CPUを見ても32bitか64bitかなんて決定できないだろ。
両方のバイナリを実行できるOSもあるし。 >>600,603あたりがFAじゃねーの。
- 609 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 13:06:00 ]
- なんで600が?
- 610 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 13:16:35 ]
- >>609
結局603を間がえたあと www.opengroup.org/public/tech/aspen/lp64_wp.htm 見たいな感じで600のようなことをすることになるわけで。
- 611 名前:デフォルトの名無しさん [2005/08/07(日) 14:11:01 ]
- select() システムコールはどのような時に使用するのでしょうか?
簡単な解説があるサイトを紹介していただいても結構です。
- 612 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 14:13:02 ]
- www.linux.or.jp/JM/html/LDP_man-pages/man2/select.2.html
- 613 名前:sage [2005/08/07(日) 14:17:31 ]
- ありがとうございます。
例をもとに、動作検証してみます。
- 614 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 14:18:12 ]
- >>611
ひとつのスレッドで同時に複数I/Oを実行したいとい
- 615 名前:sage [2005/08/07(日) 14:37:06 ]
- ありがとうございます。>> 614
サンプルとか例などはありませんでしょうか?
- 616 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 14:45:35 ]
- www.linux.or.jp/JM/html/LDP_man-pages/man2/select_tut.2.html
- 617 名前:デフォルトの名無しさん [2005/08/07(日) 14:51:05 ]
- selectの掟とかあって、難しそうですが、
理解できるように努力してみます。 ありがとうございました。>> 614 616
- 618 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 17:05:00 ]
- ファイルからの入力を監視しつつ標準入力を受け付けるような応用はselect()で事が足りるね。
- 619 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 18:12:18 ]
- ファイルからの入力はselectしなくてもいつでも読み出し可能だろ
- 620 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 18:32:31 ]
- nfsやgmailfsでも?
- 621 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 19:12:58 ]
- >>620
理論上は
- 622 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 19:35:42 ]
- readがブロックすることと、readに時間がかかるのは別。
- 623 名前:618 mailto:sage [2005/08/07(日) 20:18:08 ]
- >>619
tail -f相当しながら標準入力をファイルに書き出すプロセスを実際に作った経験で書いたんだけど。
- 624 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 20:54:12 ]
- tail -f相当って普通に考えて現在のファイル末尾まで
読んだらEOF返るだろ select()しても無駄なんじゃないの そのへぼプログラムはポータブルに動くのか?
- 625 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 21:09:09 ]
- そうなんだ
ファイルがまだcloseしてないときでも EOFが帰るのか ちょっと試してみるか
- 626 名前:618 mailto:sage [2005/08/07(日) 21:14:50 ]
- >>624
いや、標準入力はEOFにならないんだけど。
- 627 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 21:35:00 ]
- なんか618がかわいそうになってきた。
- 628 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 21:41:54 ]
- >>627
いや、>>619と>>618が戦ってるだけだろ >>618が標準入力とファイルを読む という話をしているのに対して >>619がファイルは云々と標準入力のことを棚上げして 以降話がかみ合わないままなんだよ
- 629 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 21:48:25 ]
- >>626
標準入力はEOFにならないとしてもファイルはEOFになるんじゃないの? 一度EOFまで達したファイルディスクリプタって その後書き込みがあったときに読み込み可能になるの? 標準入力はselectで待てるけど、ファイルは最後まで読み切ったら selectのタイムアウト後に自分でseekしてみるしかないんじゃなくて? それは別々な処理だし、selectで待つとは言い切れないんじゃない?
- 630 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 21:52:40 ]
- >>624
一旦EOFを返しても、そのファイルが拡大されれば、 その後のread(2)でデータが読める。select(2)もOK。 この仕様は4BSDが始めた。(たしかtail -fのために) その頃のSystem Vは駄目だったけど、今これがダメなUNIXはないと思う。 www.opengroup.orgあたりはどういう風に言及しているのかな。
- 631 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:00:00 ]
- 拡大されるまでは無限ループし続けるのか
そりゃずいぶんな実装だなw
- 632 名前:630 mailto:sage [2005/08/07(日) 22:08:03 ]
- GNUのtailなんかは再チェックのsleep時間を指定可能。
最近のUNIXはfile notificationがあるので、 (fcntl(2)のF_NOTIFY&DN_MODIFY) こっちを使えば、いい場合もあるけど。(tail -fではみたことないけどね)
- 633 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:09:28 ]
- 結局select()でtail -fを実装できないのは同じだな
どんなプログラムだったんだろう・・・見てみたい
- 634 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:18:15 ]
- >>632
EOFに達してもselect抜けるよね EOFに達したあと、再度selectにつっこんだら 拡大されるまではブロックされるの?
- 635 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:16:39 ]
- まぁ最近じゃ tail -f は sleep なんかせずに kqueue を使って
スマートに実装されてる訳だが。
- 636 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:42:36 ]
- tail.c
www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/tail/tail.c?rev=1.21&content-type=text/x-cvsweb-markup
- 637 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:57:54 ]
- 該当部分はこっちだろ。
tail/forward.c www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/tail/forward.c?rev=HEAD&content-type=text/x-cvsweb-markup
- 638 名前:デフォルトの名無しさん [2005/08/08(月) 00:57:00 ]
- makefileの書き方で質問です。
makefileのあるディレクトリの下に、 Aというサブディレクトリと、Bというサブディレクトリがあり、 ここのサブディレクトリにもそれぞれmakefileがあります。 このとき、親ディレクトリからAとBの両方を一度にメイクするには どのように書けば良いのでしょうか。 よく他人の作ったプログラムやLinuxのカーネルをメイクすると、 入ります ディレクトリ xxx 出ます ディレクトリ xxx というような表示が出るのですが、その方法を教えてほしいです。
- 639 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 00:57:55 ]
- echoコマンドつかってるんじゃね?
- 640 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 01:02:24 ]
- >>638 make -C
pc8.2ch.net/test/read.cgi/tech/1029599472/
- 641 名前:618 mailto:sage [2005/08/08(月) 02:45:52 ]
- 最早恥晒しにしかならないみたいだけれど、一応概略のみ。
-- FILE * fp = fopen(file, "r"); fseek(fp, 0, SEEK_END); for (;;) { if (fgets(fp)) { /* tail -f相当 */ } FD_SET(0); select(); if (rtn > 0) { if (FD_ISSET(0)) { if (!fgets(stdin)) { break; } /* ファイルに書き出す */ } -- 実際にはこれにmsgが絡んでもう少し複雑。
- 642 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 10:08:29 ]
- stdioとselectは混ぜるな危険。
バッファには先読みされてるがselectでは空という場合もあるぞ。
- 643 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 10:10:12 ]
- 正直、>>618には失望した
- 644 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 13:22:16 ]
- setvbuf(f, _IONBF)やfflush()と併用すれば安全に使える状況も多い。
fscanf()あたりと使うのは絶望的。
- 645 名前:618 mailto:sage [2005/08/08(月) 18:52:10 ]
- 失望されちった。
流石に標準入力は実際にはfgets()してません。 バッファリングしない一行入力関数を作ってそれを呼んでます。 #だから概略なんだってば。
- 646 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 20:04:39 ]
- FreeBSDまたはLinuxでpthreadを使用してメインスレッドとサブスレッド内で
sleep(3)を使おうと思ってるのですが、sleep(3)はスレッドセーフですか? man(FreeBSDとLinuxの両方)を見たけどその記述が見つかりませんでした。
- 647 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 20:07:56 ]
- 駄目だよ。SIGALRM使っているから。select(2)使いな。
- 648 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 01:20:09 ]
- >>647
SIGALRMでsleep(3)実装ってどんな化石OSの話でつか。
- 649 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 01:41:57 ]
- >>648
( ゚д゚) ポカーン (´-`).。oO(わからないなら黙ってればいいのに…)
- 650 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 02:55:14 ]
- GUIプログラミングを学びたいのですが、どこから始めればいいでしょうか。
レベルはK&Rを読了です。
- 651 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 03:07:35 ]
- >>649
( ゚д゚) ポカーン thread safeにするため最近のOSじゃalarmは軒並みnanosleepで実装されてるよ。 (´-`).。oO(じじいはひっこんでりゃいいのに…)
- 652 名前:デフォルトの名無しさん [2005/08/09(火) 03:08:54 ]
- alarmじゃねえ、sleepだ。
大事なところで噛んだ。ちきしょう。
- 653 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 08:08:50 ]
- >>650
Xorg のソースあたりから
- 654 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 08:20:58 ]
- Cしか知らんのならXtかGTKのチュートリアルくらいしかGUIへのとっかかりは
ないんじゃないか?
- 655 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 08:46:06 ]
- Open Groupはsleep(3)のSIGALRMによる実装を許容。
www.opengroup.org/onlinepubs/009695399/functions/sleep.html ポータブルにしたいなら、sleep(3)は使わない方がいいね。
- 656 名前:デフォルトの名無しさん [2005/08/09(火) 13:11:11 ]
- UNIXドメインソケットをつくってbindしたときにできる
ソケットファイルのパーミッションは 何で指定するの? あとから 777 に変えたいときはどうしたらいいの? system("chmod a+rw hoge");はかっこわるくてもうヤ
- 657 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 13:20:24 ]
- 後からかえたいなら、fchmod(fd, 0777)。
出来ると同時に指定したいときは、umask(0)。 パーミッションを落すわけじゃないから、後でいいだろうね。
- 658 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 13:49:28 ]
- >>656
かっこ悪いというより、頭悪いな。
- 659 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 16:43:40 ]
- >>651
ようするに最近のOSはsleep(3)がスレッドセーフで実装されてるってことか?
- 660 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 21:39:20 ]
- >>659
つまりnanosleepで実装されてれば○。alarmで実装されてたら×。 移植性高めたいならselect使えということ。
|

|