[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 23:36 / Filesize : 219 KB / Number-of Response : 879
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミング質問すれ Part1



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/

671 名前:名無しさん@お腹いっぱい。 [2009/10/17(土) 09:41:59 ]
UNIXではリダイレクトしたファイルはargvに載らないのでしょうか?
ファイル名がわからないのでアクセス権を変更できません。どうするのこれ?

672 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 09:59:01 ]
リダイレクトされてるのは前のコマンドの出力であって、
ファイルそのものではないからね。で、何をしたいのそれ?

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 10:02:12 ]
>>672
なんで「前のコマンドの出力」って限定するの? パイプと混同してるだろ

674 名前:671 mailto:sage [2009/10/17(土) 10:06:33 ]
>>672
いいえ、ファイルそのものです。すでに書いた通りアクセス権を変更したいんですが。

675 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 10:33:22 ]
>>673
ああ、そっか。ごめん。

cmd > foo とか cmd < foo した時に foo のアクセス権を変更したいってこと?
cmd は foo の事を知らずに単なる入出力先として扱っているだけで、foo は
cmd が open() する訳じゃないから無理じゃないの。

676 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 11:20:36 ]
>>674
試したわけじゃないけど

SIDOUT_FILENO なり SIDOUT_FILENO を fstat で調べてファイルだったら
fchmod でパーミッション変える

ってのは可能かも


677 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 11:22:01 ]
と思ったけど、Solaris で cat > foo したプロセスを pfiles してみると
出力先が foo であるのを確認できるね。だから何らかの方法でファイルの
名前を手繰る事はできるみたい。

あと fchmod() ってのがあったよ。これを使ったら良いんじゃないの。

678 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 11:24:47 ]
あ、スマソ。>>677>>675 の続きで >>671 宛のレスです…

自分がユーザなら、リダイレクトしただけでファイルのパーミッションを
変更されたらがっかりしちゃうと思うけど…

679 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 14:56:44 ]
初心者は黙ってろ。
何も考えずfchmod(2)。パイプならエラーになるだけ。



680 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 15:05:15 ]
さっすが上級者の言う事は含蓄があるなあw
話が片付いたあとにやってきて何故か上から目線で語りたがる奴って居るよな…

681 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 15:14:35 ]
fchmodを見つけたなら、fstatとかpfilesとかグダグダと余計な事は
書かないでよろしい。

682 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 15:30:13 ]
問題が解決したのが分かったなら、初心者とか上級者とかグダグダと意味の無いレスは
書かないでよろしい。

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 15:35:18 ]
余計な事グダグダ言って>>676>>677も解決してないだろ。

684 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 15:49:49 ]
>>683
それでは今から目の覚める様な解決方法を見せて頂けるんですね?
お願いします!

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 16:23:02 ]
あれあれ?

686 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 16:43:20 ]
結局、偉そうにしたいだけだったんだな。がっかりだわ。

687 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 17:01:43 ]
>>679で解決済み。

688 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 17:13:26 ]
え、>>679って何も新しい事言って無いじゃん…

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 17:25:17 ]
fchmodの前にレギュラーファイルである事を調べる必要はないと言っている。



690 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 17:34:45 ]
それだけ?

691 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 17:44:21 ]
fchmod一発の処理なんだからfstat付きと比べると雲泥の差。
初心者は無理して答えなくていいよ。邪魔だから。

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 17:50:28 ]
それ、雲泥の差って自分に言い聞かせてるだけじゃん…
しかも誰も fstat() が必須とは言ってないんだよなあ

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 18:40:56 ]
バカ? メクラ? >>676

694 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 18:44:51 ]
初心者はなんで足りない知識で先を争って回答しようとするのだろう?
そんなに答えたいならOKWebでも行けばいいのに。

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 18:47:59 ]
え〜、どこをどう読んでも fstat() をしないといけないという風には読めないけど?
それで、どこら辺が雲泥の差だったの?

696 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 18:50:13 ]
自称上級者は、既に出ている情報を偉そうな断定口調で書き込んだら、俺解決者宣言できる訳か。
2chは凄いインターネッツですね。

697 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 23:19:46 ]
fstatしてファイルだったらfchmodって書いてありますが。バカですね。死んだ方が良いですね。

698 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 23:35:48 ]
バカとか死ねとか子供の喧嘩かよw
お前面白い奴だな。このまま一生続けてくれ。

699 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/17(土) 23:45:11 ]
ケンカはやめて(><)



700 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 01:42:17 ]
言い逃れが出来ないようですな。理解していない事は無理して答え無くて良いのだから、
初心者は出しゃばらないように。

701 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 01:53:01 ]
fstat しなくてはいけないと書いてある訳じゃないから反論する必要も無いでしょ。
元々、大した情報も持ってない人が後出しで上級者を気取ってるだけみたいだし。
バカとか死ねとか初心者とか書いて煽ってるのはレスが欲しいからなんだろうけど、
そういうレス乞食みたいなのは止めにしようぜ。

702 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 02:04:01 ]
最早雲丹板邪内罠

703 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 05:48:52 ]
>>700
つ 鏡

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 07:58:10 ]
> SIDOUT_FILENO なり SIDOUT_FILENO を fstat で調べてファイルだったら
> fchmod でパーミッション変える

呼べとは言ったが、必ず呼べよとは言っていない...www
呼べとは言ったが、必ず呼べよとは言っていない...www
呼べとは言ったが、必ず呼べよとは言っていない...www

無様すぎ。お前の完敗。

705 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 10:23:55 ]
ところで、
> SIDOUT_FILENO なり SIDOUT_FILENO

って何?

この辺にも知識レベルが露呈してますな。

706 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 14:31:56 ]
何だ、お前自称上級者か。まだやってたんだなw
そうやって無理矢理に勝利宣言しても意味ないぞ。自分でも分かってるんだろ。
誰も fstat が必須だとは書いてないし、fstat したところでお前さんの言う所の
雲泥の差なんて物はない。君が来る前に問題は解決してたんだよ。残念だったな。

↓もう少し見ててやるから何か書き込めや。

707 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 15:05:54 ]
ちょっと聞いてくれよ。
実は3〜4年前銭湯で幼稚園ぐらいの女の子に「パパー この人のちんちん大きー」と指をさされて大声で言われた。
確かに俺の息子は大きい方だったが、指をさされたのは初めてだった。俺は特にタオルで隠すことはしなかったので特に目立ったのだろう。
その子のお父さんは「すみません」と恥ずかしそうに謝っていた。
しかし、それだけでは終わらなかった。
俺が体を洗っているとその女の子が友達の女の子2人を連れてきて「ほら、この人のちんちんとっても大きいんだよ」とわざわざ見に来た。
お父さんが「やめなさい」と言ったのと同じくらいに女湯の方から「○○ちゃ〜ん、なにお話してるの?」と同じくらいの女の子の声が聞こえてきた。
すると「この人、とってもちんちんが大きいの。ゾウさんみたいなの」とありったけの大声で叫んでいた。
すると男湯、女湯の両方からくすくすと笑い声が聞こえた。
俺はとんでもなく恥ずかしくなって石鹸を流して早く上がろうと思い立ち上がったとき、不覚にも勃起してしまった。
その場にいた女の子3人から「わっ!」と声が上がり「○○ちゃ〜ん、大変〜、この人のちんちん上にいっちゃったの〜、パオーンしてるの〜」と
女湯に向かって叫んだ。男湯・女湯同時に大爆笑がおこった。その女の子達は「すごーい! すごーい!」と俺の息子に向かって拍手をしていた。
それを見た男湯の人たちがさらに爆笑し、その爆笑につられて女湯でもいっそう大きな爆笑になった。

その日以来、銭湯へは行かなくなった…。

708 名前:名無しさん@お腹いっぱい。 [2009/10/18(日) 17:34:21 ]
呼べとは言ったが、必ず呼べよとは言っていない...www
呼べとは言ったが、必ず呼べよとは言っていない...www
呼べとは言ったが、必ず呼べよとは言っていない...www

709 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 17:47:21 ]
最後にレスしたら勝ちみたいな思考がワロスw



710 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 18:32:17 ]
「必ず呼べよとは言っていない」というのはわかりました。
で、試しに SIDOUT_FILENO を使って fstat()を呼んでみたところ、
エラーになりました。本当に SIDOUT_FILENO を使って呼んでいいんですか?

711 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 18:48:46 ]
>>710
>「必ず呼べよとは言っていない」というのはわかりました。

何だ、理解できるんじゃん…
何でこんな時間が掛かったのか知らんけど、分かったならもう粘着するなよ。

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 19:03:54 ]
じゃなくて、呼ぼうとするとエラーになるんだから、
「呼んではいけない」と訂正するべきじゃないんですか?

あと、SIDOUT_FILENOについてはいつまで訂正しないつもりですか?

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 19:14:25 ]
何でそれを俺に言うんだ?
そんなに気になるなら君が訂正してあげれば良いんじゃないの。

714 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 19:16:38 ]
>>676 に言ってるんだが

715 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 19:18:44 ]
>>714
じゃあ、これは何だ?

>>712
>じゃなくて、

紛らわしい書き方をするなよ。あとレスアンカー付けろ。

716 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 19:23:50 ]
>>708
> 呼べとは言ったが、必ず呼べよとは言っていない

↑つまり、「呼んでも構わない」とは言ったということだよね。
ところが、
呼ぶとエラーになるんだ。呼んではいけない。

よって、>>708 = >>676 の負け。

717 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 19:26:46 ]
ところで、お前さんに勝って誰が得するんだ?

718 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/18(日) 19:57:15 ]
> 呼べとは言ったが、必ず呼べよとは言っていない...www
馬鹿丸出しの小学生並みの言い逃れですな。


719 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/21(水) 23:27:56 ]
プログラミングに使いそうな単語を使った言葉遊びのスレなんですね、ここは



720 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/22(木) 12:22:07 ]
自分の間違いを認められない初心者が粘着しているだけ。

721 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/22(木) 19:46:41 ]
初心者が初心者を見下してどうするんだ

722 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/22(木) 20:20:31 ]
> 呼べとは言ったが、必ず呼べよとは言っていない...www
こんな無様な言い逃れ、めったにお目に書かれない。

723 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/22(木) 20:38:26 ]
デスマご苦労さまでちゅ!

仕事がなくてヒマしているPGさんも
ご苦労さまでちゅ!

壊れて辞めてしまったPGさんも
これまた本当にご苦労さまでちゅた!

さて、フロは入ったほうがさっぱりいたしますが、
スレタイどおりと思いませんか?

724 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/10/22(木) 20:40:32 ]
お前ら仲良いなw

725 名前:名無しさん@お腹いっぱい。 [2009/11/08(日) 22:13:22 ]
select(2)のfd_setのサイズが馬鹿でかくてウザいんですけど、
ファイル記述子が32個以下であることが確実な場合、
fd_setの代わりに強引にintの変数を使っても問題ないですかねぇ?

あ、poll()使えというのは無しの方向で。

726 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 05:05:19 ]
ダメに決まってるだろ。



727 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 06:36:35 ]
>>725
もちろんOK。warningを消すためにキャストしてね。

728 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 08:05:25 ]
>>727
ありがとうございます。intで行ってみます。

>>726
ありがとうございませんでしたw

729 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 17:34:47 ]
システムコールしたらカーネルはfd_set分の大きさをcopyinするだろうから、
そのintがページ末尾にあって、fd_setの大きさだったらページ境界をまたぐ
場合、そしてその次のページのメモリをプロセスがとっていなかったとすると
そのタイミングでsegmentation faultで落ちるんじゃないか。



730 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 17:49:46 ]
>>729
そんなことはない。
select()の第1引数がビットの最大値を決めていて、
カーネルはそのビットを含むアドレスまでしか見に行かないから
Segmentation faultなどしない。
(そもそも、fdsetのサイズはユーザー空間で決めていて、カーネルは知らない)
(Solarisとかだと、ユーザープログラムのコンパイル時にfdsetのサイズを再定義することが可能)

ただ、FD_ZERO()などのマクロは正常動作しないので、
ビットのセットやテスト等はintに対して自分で演算すること。

731 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 17:55:31 ]
あー、なるほど。たしかに。

732 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 21:18:59 ]
つーかそんなことOS依存なんでは?
POSIXとかで、panicしてはいけないとか、決まってるの?

733 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/09(月) 21:19:39 ]
ああ、panicじゃなくてerrno=EFAULTでのエラーか。

734 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 01:09:38 ]
>>730
> (そもそも、fdsetのサイズはユーザー空間で決めていて、カーネルは知らない)

上限はあるけどね。

735 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 07:18:09 ]
>>734
下限の話をしているのに「上限」とは的はずれで蛇足な突っ込み

しかもその上限は、open filesとしての上限であって、
fdset自体の上限じゃないし。

736 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 08:01:23 ]
>>734
fd_setのビット数、2147483647 (=2^31-1) まで正常動作を確認。(上限無し)

737 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 09:38:55 ]
そんなにたくさんfdを作れるとでも?

738 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 09:45:16 ]
>>737
だから、fdの話じゃなくてselect()のインターフェイス上のfd_setの話だって。
>>735 も言ってるでしょw

fd_setは(int最大でも使えるから)上限無し。

739 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 09:50:25 ]
userlandから渡すfd_setの幅がいくら広くても仕方ないでしょ。
カーネルがそこまで本当にアクセスしてると思ってるわけ?



740 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 09:53:27 ]
>>739
最初の議論ちゃんと読んでる?

「カーネルがそこまで本当にアクセス」しないからこそ問題が起きない。
だから、fd_setは(fdとは無関係に)好きなサイズで確保して構わない、
という話をしてるのだが。

741 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/10(火) 10:07:26 ]
上限の話をしても意味がないってのを理解してないらしい

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/11(水) 00:45:33 ]
>>736
環境書かないと意味ないんじゃない?

743 名前:名無しさん@お腹いっぱい。 [2009/11/11(水) 15:44:44 ]
詳しい人にとってはとてもレベルの低い話かもしれませんが、よろしくご教授下さい。
Linux環境でライブラリの中の動きを見ようと思っています。
ライブラリのソース(*.c)の頭の#include <stdio.h>を追加し、fprintfを沢山追加してコンパイルしました。
すると、そのライブラリを使用する一部のコマンドがsegfaultするようになりました。
error 4 in libc-2.10.1.so[xxxxxxxxx]と出力されています。
多分初歩的な大きな間違いを犯していると思うんですが、どうしたらいいですか?

744 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/11(水) 16:23:46 ]
スタックのどこかが壊れるバグを入れ込んだ、ないし顕在化させたんだと思うが。

とりあえず、一つ一つ付けたり外したり、あるいは半分ずつ切り分けるなり、
デバッガで怪しい動作をさぐるなり、そういう手しかない。

745 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/11(水) 16:30:40 ]
>>743
libcのファイル名見るとLinuxっぽいね。

#define EINTR 4 /* Interrupted system call */

だからそこでfprintf(3)は厳しい状況じゃないかな。

746 名前:名無しさん@お腹いっぱい。 [2009/11/11(水) 17:00:16 ]
>>745
そこに書いてある意味はよくわからないんですが、
「error 4 in」って出るライブラリはそもそもfprintfを使えないということですかね

回避策はシステムコールのみを使ってfprintfの役割を代替するものを使えばいいって
ことでしょうか?

747 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/11(水) 19:01:27 ]
いや、システムコールの呼び出し自体が問題になってる。
「再スタート可能なシステムコール」あたりでググって、
読んでもらえば分かるけど、理解するのはちょっと厳しいかもね。

どこかメモリ上に書けば?
core dumpするから読めるでしょ。

748 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/11(水) 23:27:36 ]
知ったかぶりに振り回されないように注意しな。
error 4はセグメントフォルトの詳細コード。EINTRは全然関係ない。

どうせ、%sに無効ポインタ渡しているとかいう原因だろ。

749 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/11(水) 23:51:15 ]
>>745
Linuxって言って質問してるのに「Linuxっぽいね」って、、、



750 名前:名無しさん@お腹いっぱい。 [2009/11/11(水) 23:53:47 ]
>>748
>>747が正しい可能性が高いと思います。
>>747を受けて、既にログ出力用の関数が用意されていないかと探してみたんですが、
Makefile.amに
「このソースファイルはライブラリに使える」
「このソースファイルはデーモンとテストアプリに使える」みたいな
記述があって、ログ出力の関数は後者の中にしかありませんでした。
前者だとソケットプログラミングしないと中の動きは見れないようです。

751 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/11(水) 23:56:58 ]
>>748
知ったかぶりに振り回されないように注意。

%sに無効ポインタ渡してるのが原因なら質問するまでもなく自己解決する。

752 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 00:04:09 ]
EINTRは関係ない。 error 4は↓の40行目 PF_USER(ユーザモードでのページフォルト)
www.gelato.unsw.edu.au/lxr/source/arch/x86_64/mm/fault.c

segfaultが発生してると言っているのにEINTRとか馬鹿杉。無能杉。

753 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 00:39:45 ]
何か嫌な事でもあったのか?

754 名前:名無しさん@お腹いっぱい。 [2009/11/12(木) 01:03:13 ]
>>748,751
確かに無効ポインタを渡している可能性はないと思います。
最初に質問する前に既に念のためfprintf (fp,"aaaa%s","aaa");だけで試していました。

755 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 01:08:23 ]
>>744 で答えは出てるんじゃないの。
取り敢えずスタックダンプでも見てみたら。

756 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 06:39:13 ]
>>744 って全然答えになってないが、、

757 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 07:31:26 ]
EINTRとか言い出た知ったかクンの弁明は?

> いや、システムコールの呼び出し自体が問題になってる。
爆笑。もはや芸術的な勘違い。

758 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 08:52:50 ]
何か嫌な事でもあったのか?

759 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 19:45:04 ]
>>754
可能性の高い順
1位 無効ポインタを渡しているのを見落としている。
2位 stdin/stdout/stderrが既にクローズされている。
3位 fprintfが利用している関数内にfprintfを突っ込んだので無限再帰になっている。
<中略>
4294967296位 error 4はEINTR。システムコールの呼び出し自体が問題になっている。



760 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 19:51:34 ]
ここには良いエスパーは居ないみたいだから地道にデバッグするのが良いと思うぜ

761 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 20:17:10 ]
>>759
>無効ポインタを渡しているのを見落としている
は、本人がすでに否定。

>stdin/stdout/stderrが既にクローズされている
クローズされてるstdout等を呼んでもエラーになるだけでセグフォはしない。

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 20:24:13 ]
stdioライブラリのバッファ等の干渉を避けるため、
fprintf()の代わりに write(2, "hoge?n", 5); を使って問題を切り分けとけ。

763 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 20:30:09 ]
> は、本人がすでに否定。
本人は否定しているが、その上で見落としているという意味だよ。

> クローズされてるstdout等を呼んでもエラーになるだけでセグフォはしない。
大分前にglibcでセグメントフォルトした気がする。記憶違いかもしれないが、
4294967296位よりは可能性高い。

764 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 20:33:06 ]
一緒だよ

765 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 21:33:32 ]
>Linux環境でライブラリの中の動きを見ようと思っています。
>ライブラリのソース(*.c)の頭の#include <stdio.h>を追加し、fprintfを沢山追加してコンパイルしました。
>すると、そのライブラリを使用する一部のコマンドがsegfaultするようになりました。

どのライブラリに対してそれをやったのか知らんが
fprintfをどこでも使えると思ってるのがそもそもの間違い

766 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 21:38:22 ]
エスパーなら、どのライブラリの中からfprintf()を呼べばsegfaultが再現するか、
ずばり言い当てるべきだな。

(無効ポインタとか、クローズ済みとか的外れなこと言ってる奴は無視して)

767 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 22:02:02 ]
知らんがな(´・ω・`)

768 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 22:17:29 ]
システムコールの呼び出し自体が問題だからだ。EINTRが明確に示している。

769 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 22:58:41 ]
>>743
> error 4 in libc-2.10.1.so[xxxxxxxxx]と出力されています。

この前後をしっかりとそのままコピペしてはどうだろうか。




770 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 23:12:40 ]
すみませんが詳しい方のみ回答をお願いします

771 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/11/12(木) 23:17:12 ]
もう質問者も見てないだろw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<219KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef