UNIXプログラミング質問すれ Part3
レス数が1000を超えています。これ以上書き込みはできません。
0001実行されるのでしょうか?
NGNGUNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド
前スレ:
http://pc5.2ch.net/test/read.cgi/tech/1055110889/
http://pc2.2ch.net/tech/kako/992/992057422.html
>>2 関連スレ
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG立て逃げせずに関連スレ張れよ馬鹿
0004デフォルトの名無しさん
NGNGCygwin使っている人いますか? その11(UNIX板)
http://pc5.2ch.net/test/read.cgi/unix/1076240971/
Cygwin使っている人いますか? Part2(Windows板)
http://pc5.2ch.net/test/read.cgi/win/1052361218/
関連板
http://pc5.2ch.net/unix/
http://pc5.2ch.net/linux/
0005デフォルトの名無しさん
NGNGで,お前は一体,何を言いたいんだ。
一人,自己完結して終い?
0006デフォルトの名無しさん
NGNGみっともない。。。
0007デフォルトの名無しさん
NGNGトラブってもマニュアル読まない人?
0008デフォルトの名無しさん
NGNG初めの実装ではスクリプトの中で'&'付けてコマンドを実行するようにしていました。
OS起動によりスクリプトを起動したら、ログイン後に実行し続けている
はずのコマンドのプロセスがなくなっていました。そこでなぜかと
調べているときに、他のアプリケーションのスクリプトでは'&'を付けて
起動しているコマンドがほとんどないことに気が付きました。
根本的な知識がなかったために質問させてもらいました。
>>7
自分ひとりで検討したわけではないのですが、何かまずい欠点などあったら
指摘してもらえますか?
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGnohupのマニュアルの中に何がまずいかは書いてあるから読め
ということでしょうか?
読んだ結果決定したことなので今更何ともいえないです。
0011デフォルトの名無しさん
NGNGマニュアルを再読しないの? ああ、もう済んだことだしね。
0012デフォルトの名無しさん
NGNG再読はしています。済ますつもりもありません。
ハングアップのシグナルを無視してコマンドを実行するという点で
まだ違いが読み取れていません。
0013デフォルトの名無しさん
NGNGそもそも,>>990に'&'の恐ろしい害が書いてあるのは,ちゃんと理解したのか?
>>992の「僕不安なの〜」なんてレス見る限り,全く理解していないように思うのだが。
0014デフォルトの名無しさん
NGNGそもそも,>>990に'&'の恐ろしい害が書いてあるのは,ちゃんと理解したのか?
>>992の「僕不安なの〜」なんてレス見る限り,全く理解していないように思うのだが。
0015デフォルトの名無しさん
NGNGさっさと答えを書けばよいのでは?
そんなことで儚い優越感に浸っても仕方がないだろう。
0016デフォルトの名無しさん
NGNG必死だな
0017デフォルトの名無しさん
NGNGオマエモナー
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGシグナル割り込みが発生していると思うのですがシグナルを無視するような方法なんてあるのでしょうか?
0021デフォルトの名無しさん
NGNGいずれにせよ、なんで-1が返ってるのかを確認するのが先だと思うが。
0022デフォルトの名無しさん
NGNGとりあえずerrnoがEINTRかどうか見てから判断しても遅くはないだろう
signalは無視することもできるが、単に無視しちゃまずい
場合もあるだろう(子プロセスからのSIGCHLDを待ってる場合など)
sigaction()なら古いsignal()より細かい制御ができるが、
sigaction()がサポートされてるかどうかとか
どんなシステムコールが再開をサポートしてるかとか
その辺はシステムによるんで、結局
while ((n_read = read(fd, buff, sizeof buff)) == -1 && errno == EINTR)
;
みたいにループにしちゃうのは良く使う手だ
0024デフォルトの名無しさん
NGNGerrnoチェックすんのはUnixの鉄則ではないか。
0025デフォルトの名無しさん
NGNG(Windows は GetLastError() だったりするけど。)
ていうか、>>20 は場当たり的杉。
select が -1 を返す
⇒ 「シグナル割り込みが発生していると思う」
⇒ 「シグナルを無視する」
errno みて、「あっ ! 割り込まれてんじゃん !!」とわかったら、「誰がシグナル送っとんじゃ、ゴラァー !!」と思うのが普通だと思ってたけど、最近はみんなこうなのか ?
0026デフォルトの名無しさん
NGNGサンプル数1で全国の星の数ほどいるプログラマの考え方はこれだと決定するのですね。
最近はみんなそ(略
ときに、誰がシグナルを投げたかなんてわかるんですか?
0027デフォルトの名無しさん
NGNGわかる。ぐぐれ。
ヒント: sigaction
(ヒントっていうかそのものか。藁)
0028デフォルトの名無しさん
NGNG>> 最近はみんなこうなのか ?
> サンプル数1で全国の星の数ほどいるプログラマの考え方はこれだと決定するのですね。
どこを見て「決定している」と判断しているか非常に興味がある。
最近は、こういう奴も多いのか ?
0029デフォルトの名無しさん
NGNGつかってて平気ですか?
0030デフォルトの名無しさん
NGNGみんな我慢汁がまんしてる。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGUNIX好きさ。快適だ。
君は何がいいと思うんだ?
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG一度Unixの良さを知ったら他の奴にはもう戻れない。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGUNIXがなかったらと思うとぞっとするよ。
0039デフォルトの名無しさん
NGNGなにもできない。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGおいかけて問題を探さなくちゃならない。ハッカーじゃない
普通の人の精神状態を平静に保つには、クローズドな
システムがよい。分業と称した責任の擦り付け合い。
0042デフォルトの名無しさん
NGNG> クローズドなシステムがよい。
例えば?
0043デフォルトの名無しさん
NGNGあなたが本当に Smalltalk や Lisp の信奉者であるなら UNIX の良さが分かると思うけど
(こないだ Medley 触ってみたけど、今の時代にあの中で生活するのは厳しいかな)。
0044デフォルトの名無しさん
NGNGrootさんに悪いからあんまり触れないけど。
>>42
Solaris
ちなみに俺の中ではクローズドなUNIXなるものはない。
0045デフォルトの名無しさん
NGNG> UNIXは(Solarisと違って)なんか問題が起るとlibcやカーネルのソースまで
> おいかけて問題を探さなくちゃならない。ハッカーじゃない
> 普通の人の精神状態を平静に保つには、クローズドな
> システム(例えばSolaris)がよい。分業と称した責任の擦り付け合い。
Solarisで開発したことないから,よく分かんないんですけど,
Solarisには,例え問題が起きてもlibcやカーネルのソースまで
追いかけなくても問題が解決する機構があるんでしょうか?
それとも,Solrarisのカーネルやlibcには,そもそも問題がないとの主張ですか?
「クローズド」の意味を私が理解できてないのかな?
0046デフォルトの名無しさん
NGNG> Solarisには,例え問題が起きてもlibcやカーネルのソースまで
> 追いかけなくても問題が解決する機構があるんでしょうか?
サポートと言うありがたい機能がついてるからな。
あまり役に立たなかったりするけど...。
0047デフォルトの名無しさん
NGNGUNIXに限らんけど。
0048デフォルトの名無しさん
NGNGshスクリプトあらかじめバイトコンパイルとかやってキャッシュ化するとかできんの?
どうせそれやっても遅だろうけど。
0049デフォルトの名無しさん
NGNGそれでも遅いと感じるなら、Cで書くしかないけど。
0050デフォルトの名無しさん
NGNGfork() とかコマンド自体の事なら、十分速いから無問題。
0051デフォルトの名無しさん
NGNGクソ遅え。。
アホコマンド連発する文化だしな。
0052デフォルトの名無しさん
NGNGそんなのは処理依存だし、時間掛かる処理に sh を使っているおまいが悪い。
つか UNIX の基本は sh じゃなくて C だろ。
0053デフォルトの名無しさん
NGNG処理系依存て。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG個々のコマンドの方が時間かかると思うのだが。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGそろそろ終わりにしようや
0060デフォルトの名無しさん
NGNGですよね.
>>51
調べたと言うんなら,律速段階をCなりなんなり使って最適化すりゃいいじゃん.
あなたには選択の自由がある.
0061デフォルトの名無しさん
NGNG見合わない場合はあるよね
その辺は適当に。
典型的な例がtestだのechoだのdateだのexprだのだ
まあ例をあげたらキリがないがな
これがshの組み込みになってない場合は明らかに時間がかかりすぎる
ループの中で使ったりしたらシャレにならん
一行メッセージを出力するだけのためにfdを複製しfork()exec()wait()
を実行するのは割りがあわなすぎる
ま、Cってのは極端だな
他のスクリプト言語が使えるならそっちを使えばいいだろう
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGcは最終兵器だよな(w
>>63
イパーイある。俺が担当したうちのなかで一例を挙げると「ローダの無いRDBへの更新コマンド群の作成」
shで10時間ほどかかっていたのをawkに書きなおした。5秒になった。
shを使っていて遅いならば、それはshを使うのが悪い。
sh類は単なる「プログラマブルランチャー」だと思うべし
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGshは個々のプログラムでは制御しにくい全体の処理フローを担当。
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGむしろshベースのツールボックス的アプローチが伝統で
性能や機能にに問題があったら他のものを使う
が基本だと思うんだが、shの「ツールボックス的アプローチ」
がある意味「やりすぎ」なんだよな
echoだのtestだのexprだのまでが外だしってのは
昔のデザインなのにあそこまで富豪的なのはある意味すげえ
tclはコマンド(プロセス) が コマンド関数
に置き変わっただけでものすごくshに似てるけど
当たり前の話として、比べものにならないほど速いよね
インタプリタの中ではそれでも遅い部類だけど
Cなんて使うまでも無いことが多いよ。ただやっぱり
shの非効率は、時として次元が違いすぎるものになる。
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG言語はC++です。
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNGそれは元のshell script書いた奴が糞だっただけかも知れないので、
目的じゃなくて、処理内容を書いてみなよ。(目的書いてどうする!?)
まあ、shell scriptでヘビーな文字列処理はやらない方がいい、
これは議論の余地がないけどな。お爺ちゃんも言ってた。
0073デフォルトの名無しさん
NGNGxbm, xpm形式は、
画像データファイルそのものが、header fileとして利用できる。
0074sh 厨がかかるかな ?
NGNGネタかハッタリだろ。
いくら sh が遅いと言っても、awk の 7200倍も遅いわけがない。
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGそうだな、作りによっては7200倍どころじゃないだろうからな(w
以下のshスクリプトはcat -nの真似をするが(正確に同じではないが)
ここまで遅いものを他のスクリプト言語(awkを含む)で作るのは難しいだろう。
ためしにちょっとでかいファイルを読ませてみ。死ぬから。
ま、こんなものは当然誰もつくらない。すなおにcat -nを使えばよいからだ。
しかし、readもechoも、それをループの中で使うことも、それ自体では
ごく普通のshスクリプトで用いられる可能性がある点に注意だ。
for i
do
exec <$i
lineno=1
while read line
do
echo $lineno "$line"
lineno=`expr $lineno + 1`
done
done
0077デフォルトの名無しさん
NGNGsh作った奴、アホだろ。
http://minnie.tuhs.org/UnixTree/V7/usr/src/cmd/sh/mac.h.html
0078デフォルトの名無しさん
NGNGUNIXは基本的に、こうしたアホスパイラルで構築されている事が随所で観測できる。
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG有名なハナシだろそれ。
似たような風習は昔はちらほらあった。
現在の基準で過去を断罪すること勿れだよ。
>>76
単に処理の比率の問題だろ。
shスクリプトでループ回すときは内側の処理はもっと重いのが普通だし、
awkじゃできないこともある。
行番号つけるために>>76みたいなことして使えないと評価する奴がいるとしたら
適切な道具の使い方を知らないそいつの頭が使えないだけの話。
0081デフォルトの名無しさん
NGNG数値計算もやらない方がいい。
>>76
長いわりに話のレベルが低くて激藁
どんな言語だってループ(再帰)はあるし、
ループの中で使える処理の重いサブルーチンがある。
そのfor文は…
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG> そうだな、作りによっては7200倍どころじゃないだろうからな(w
実際にやってみた。
OS: FreeBSD 4.7R
CPU: Pentium200MHz
Mem: 48MB
% /usr/sbin/time /tmp/76.sh /usr/src/sys/sys/* > /dev/null
2088.41 real 85.80 user 394.67 sys
% /usr/sbin/time cat -n /usr/src/sys/sys/* > /dev/null
0.56 real 0.44 user 0.11 sys
まあ、遅いが 7200倍も違わない。
ついでに言うと、誰が考えても expr の呼び出しに時間がかかっているのは明白。
FreeBSD の sh は数値演算を sh 自身でできるから、
10c10
< lineno=`expr $lineno + 1`
---
> lineno=$(($lineno + 1))
とした版を作ると
% /usr/sbin/time /tmp/76-1.sh /usr/src/sys/sys/* > /dev/null
227.18 real 16.66 user 44.69 sys
と、400倍ぐらいになる。
0084デフォルトの名無しさん
NGNG>FreeBSD の sh は数値演算を sh 自身でできるから、
と言うからには
>< lineno=`expr $lineno + 1`
>---
>> lineno=$(($lineno + 1))
これぐらいは内部で自動的に書き換えして欲しいよね。
互換性なくなるならイラネ。
0085デフォルトの名無しさん
NGNG> これぐらいは内部で自動的に書き換えして欲しいよね。
(゚Д゚)ハァ?
> 互換性なくなるならイラネ。
歳幾つ? いまや$((数式))がないshの方が互換性がないんだけど…
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
0086デフォルトの名無しさん
NGNGそんな余分な自動化はいらんよ。
だいたい、expr がどんなプログラムかを sh が知っているわけじゃないんだし。
0087デフォルトの名無しさん
NGNG008876
NGNGごめんおれアホだから
> awkじゃできないこともある
awkぐらいにしか勝てないのですか?
>>81
何言ってるかわからないよ。もしかして俺よりレベル低いですか?
>>83
意外に早いな
ハノイの塔とかフィボナッチ数列にすべきだったか(w
確かに今どきのshellで明らかに遅くなるのはexprだけだろうな
あそこだけはどうしてもfork()&exec()とパイプからの読み取りが
発生するからな
>>85
でも今だにオープンソースのCの世界ではK&R風に書くかansi2knr.cは
つけるよね
Posix互換shellの機能は当然期待せずbourne shell互換に書くよね
>>76もそういうscriptのつもりなんだけど
互換性ってのはそういうことでしょ
C++なんかもっとひどいよね
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG> でも今だにオープンソースのCの世界ではK&R風に書くかansi2knr.cは
> つけるよね
gccにバリバリ依存しているものも多いですが…
0091デフォルトの名無しさん
NGNGそうか?
どっちかというと、autoconfやgmakeに依存してるもののほうが多いような
気がするが
まあオープンソースといってもピンキリだからな
しかし、
・互換性を(さして)気にしなくていい
・極めてシビアな状況(/usr/binがつかえないなど)では実行できなくてもいい
んなら、shスクリプトにする必要なんぞどこにもない気がしないか
特にposix shなんて中途半端のきわみだという気がするが
0092デフォルトの名無しさん
NGNGawkくらいまで枯れてればいいけど。
0093デフォルトの名無しさん
NGNGよくあるのがecho()とかいう関数(echoのくだらないラッパー)
0094デフォルトの名無しさん
NGNGそういう悲惨な状態にはなりにくいということ。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGちがうちがう
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGOpenBSDはかなり手が入ってる。Tab補完や履歴検索が出来るんで常用可。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGbash?
0102デフォルトの名無しさん
NGNGbashは(/bin/shとして起動した時にも)
独自拡張をoffに出来ないので*BSD方面では
/bin/shとしては評判が悪い。
0103デフォルトの名無しさん
NGNGbashismですな。
0104デフォルトの名無しさん
NGNGOpenのshはksh(pdksh)だぽ
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG言ってみろよゴルァ
0107デフォルトの名無しさん
NGNG名前。
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG$echo -eってしてみ。
さらに$printf -aのように-[a-zA-Z0-9]を表示しようとすると
オプションと勘違いするし…。
0110デフォルトの名無しさん
NGNGsetitimerだとかなり時間がずれるので正確なのがあればいいんですけど。
OSはRHLinux9です。
0111デフォルトの名無しさん
NGNG秒?ミリ秒?ナノ秒?
0112デフォルトの名無しさん
NGNGそこまで正確じゃなくて分単位程度の正確さを求めています。
夜間だけプログラムを動かして朝の7時に処理を止めたいので指定した時刻に
シグナルを送ってくれるような関数があればいいんですけど。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG> 夜間だけプログラムを動かして朝の7時に処理を止めたい
それはat(またはcron)とkillの組み合わせでいいような...
0115デフォルトの名無しさん
NGNG7時までに止めたいのは一部の処理でその後にもいくらか処理したいので
KILLはできません。
setitimerで1分ごとにシグナル送ってハンドラ内でtime関数を使って
設定時刻と比較するしかないのかな。
なんかもっとスマートな方法がありそうな気がするけど。
0116デフォルトの名無しさん
NGNGman kill
0117デフォルトの名無しさん
NGNG> KILLはできません。
それはKILL -TERMのことか? 他のsignal使えよ。、
setitimer(2)は分単位でずれることはないしな。
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGすいません。killについてよく知りませんでした。
確かになんとかなりそうです。ありがとうございます。
0120デフォルトの名無しさん
NGNG名前が悪いよね
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNGそんなことしなくても、>>114 の方法で十分。
0124デフォルトの名無しさん
NGNG同意
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG懐かしく思い、いろいろ検索してはみたもののSCCSのダウンロードサイト
や解説ページが見つかりません。どなたかご存知ないでしょうか。
0127ルナ
NGNG「MIDIダイレクト、sound文で、音の高さのデータを共用したい。
あなたの考え方を述べなさい。」
というレポートを書かないといけないのですが、
図書館や本屋さんで調べても内容が難しくてわからず、何を
共用すればいいかもまったく検討もつきません。
どういう風にまとめればいいでしょうか?
何かアドバイスを頂ければと思い、ここに来ました。
答えにくい質問だとは思いますがどなたかアドバイスを
いただけると助かります。
お願いします!
0128デフォルトの名無しさん
NGNG0129ルナ
NGNG0130デフォルトの名無しさん
NGNG商用 UNIX なら今でも入っています。フリーでは sccs 互換の cssc というプログラムが
あったんですが、今探したら見つかりませんでした。
0131デフォルトの名無しさん
NGNG商用だと素で SCCS が入ってることが多いんだけど。
互換のやつはこれだよね。
http://cssc.sourceforge.net/index.shtml
0132デフォルトの名無しさん
NGNG意味不明かつ意図が分からん。
0133デフォルトの名無しさん
NGNG「あなたの考えを述べなさい」だから、
「その内容では、何を言いたいのか分かりません」
でもいいんじゃないかと思った。
0134デフォルトの名無しさん
NGNGpythonから始めたほうがいいとハッカーサイトに書いてあったのでつが
なにを組んでいいのかわかりません。
Cは少し勉強したことがありまつ。
ハッカーになりたいのでつ
よろしくでつ
0135デフォルトの名無しさん
NGNGハッカーになりたいならインタープリタを書くのがお勧め。
最初は電卓とか、初期設定ファイル用のパーサからかな。
0136デフォルトの名無しさん
NGNGありがとうございまつ。
やっぱりpythonからでつか?
がんがってみまつ。
0137デフォルトの名無しさん
NGNGインタプリタ「を」書く。
python用のインタプリタを書くつもりなら別にいいけど。
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNGエディタも書けないの、プ」とか「おまえ版管理ソフトも書けないの、プ」と
か言われたもんじゃ…。
パーサ、メモリ管理、ファイル処理、文字列検索、文字列比較、か。なるほど。
0141デフォルトの名無しさん
NGNGありがとうございまつ
0142デフォルトの名無しさん
NGNG記号処理ツールの作成はやらないのではないかな。
0143デフォルトの名無しさん
NGNGitimerが無効になってただけだった・・
どうりで指定した時間になっても終わらないはずだ。
とりあえずkillallでなんとか思い通りに止まってくれました。
0144デフォルトの名無しさん
NGNGsleepとalarmは競合する。
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNGマルチメディア方面と言っても、
JPEGやMPEG1のdecodingなど>>140とたいして変わりないよね。
0147デフォルトの名無しさん
NGNGだってうんこsh画面のイメージが強すぎて、
こんなんでマルチメディアできんの??
とか先入観入って思わずSGIとかの存在忘れちゃうしよ。
ウププ
ところで本当にできてるの?
UNIXでマルチメディア(禿藁
0148デフォルトの名無しさん
NGNG真のマルチメディアはUNIXにあり
0149デフォルトの名無しさん
NGNGだってうんこshが
0150デフォルトの名無しさん
NGNG相手すんなよ。
0151デフォルトの名無しさん
NGNGマルチメディアが何だかわかってる?(藁
絶対わかってないよね。
コワー(藁
0152デフォルトの名無しさん
NGNG扱うデータ形式の操作やとりまわしが面倒なだけなような
だれか他の特質を回答希望
>>151
だれならわかっているかを回答よろしく
0153デフォルトの名無しさん
NGNG先生!
「マルチメディア」って分かりません。
マルチメディアってなんですか?
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGオーバーヘッドが大きそうな気はする。SGI が頑張っていた頃はそうでもなかったのかな?
サウンド関連は知らない。
0156デフォルトの名無しさん
NGNG糞重いけど。
0157デフォルトの名無しさん
NGNG> オーバーヘッドが大きそうな気はする。
想像で言うなよ。お前知識(というか伝聞)が古すぎだよ。
0158デフォルトの名無しさん
NGNG一般利用者はMac OS Xでいいだろうけど、
この板のメインキャストであるプログラマから観たら、
糞APIと糞言語のシステムだな。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG今の X は、Windows みたいなカーネル空間に一部突っ込んじゃう様な実装に比べても、
十分な速度が出てるって言ってます?
0162デフォルトの名無しさん
NGNGきょうびのハードじゃ「カーネル空間に一部突っ込んじゃう」必要性はあんまりないのでは?
むしろ...
0163デフォルトの名無しさん
NGNGX: ウィジェット毎にソケット作るよ。
Win: GDI はカーネルモジュールだよ。
0164デフォルトの名無しさん
NGNGそれならもうカーネルの近くに入ってもいいと思うよ
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGDRI知らないでX11語るアフォな人々?
http://dri.sourceforge.net
0167デフォルトの名無しさん
NGNGくだらない煽りはUNIX板でやってくれないかな?
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNGどういう環境,用途で使うからXの速度に不満が出るの?
ちょっと興味がある.
ソフト,ハードとも教えてみてよ.
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGXに依存してるものは多いですからね.
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG『Xlibがとにかく遅い!!』
『Xlibのオーバヘッドがでかくて我慢ならん!!!』
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG別に特殊な用途ではないのね?
ハードは何使ってるの?
OSは?
0177デフォルトの名無しさん
NGNGバカじゃねえの。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGそれが律速段階になってるのは確認したの?
177は利用している環境(ハード,ソフト)が特殊なのか,
それともそれを感じる主観が特殊なのか?
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNGあんな古い設計はそろそろおさらばしたいところ
0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG(´-`).。oO(CSRSS.exeが明記されていないが、それ以外はNT3.51と全く同じ構造になるのよね)
(´-`).。oO(http://www.itmedia.co.jp/news/0310/29/l_avalon.jpg)
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG何が違うの?
0190デフォルトの名無しさん
NGNG0191186
NGNG誰が何とプロセス間通信の区別が付いていないのかわからないが、
LonghornでCSRSS.exeを使うと明記されていないので、NT3.51やXのようにCSRSS.exeやXサーバ
とプロセス間通信する形でグラフィック関係を実装するとはっきり明記されているわけではないん
だけど、ぱっと見ではNT3.51に戻るようにしか見えないのよね。
Window ManagerもNT3.51と同じようにユーザモードに戻るので、少なくともWindowの処理には
Window Managerとのプロセス間通信が必要になるし、通常の描画処理にしても、CSRSS.exeや
win32k.sysなど単一のコンポーネントが管理するモデルを変更するとは思えない。
0192デフォルトの名無しさん
NGNG> Window Managerとのプロセス間通信が必要になるし
馬鹿発見
0193デフォルトの名無しさん
NGNGスレ違いだろ
0194デフォルトの名無しさん
NGNG早く教えれ
0195186
NGNGああ、そうか。必ずしもWindow Managerをプロセスとして実装する必要はないのか。
でも、その場合でも、画面という単一のリソースを複数のアプリからアクセスすることになる以上、
画面に対する排他制御が必要になり、そのため画面の一部になるWindowの管理や描画には、アプリ
ケーション間でプロセス間通信してWindowのロック等をすることになるから、どっかでプロセス間
通信が必要になることには変わりない。
それに、Windowの管理のためのリソースは排他制御のため他のアプリからアクセスできる場所にある
必要があり、かつその場所が独立したWindow Managerユーザプロセス内部ではないとすると、カー
ネルがリソースを保持することになり、Window Managerがユーザモードに移ることと矛盾するぞ。
プロセス間通信なしにユーザモードだけでどうやってWindow管理できるか教えてくれ。アフォなんで
わからん。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG> ユーザモードに移ることと矛盾するぞ。
(´-`).。oO(Window Managerがユーザモードに移るって誰が言ったんだろう)
0199デフォルトの名無しさん
NGNG仮定の話だよ。池沼は話の流れが読めないのかそうか。
0200デフォルトの名無しさん
NGNG>プロセス間通信と区別が付いてない馬鹿発見
これについて教えれ
0201デフォルトの名無しさん
NGNG>>186
> (´-`).。oO(http://www.itmedia.co.jp/news/0310/29/l_avalon.jpg)
をよく見れ。
NT3.51とNT4.0/2000は
http://www.atmarkit.co.jp/fwin2k/insiderseye/watchdd002/whatwdm1-1.html
特にNT4.0の
http://www.atmarkit.co.jp/fwin2k/insiderseye/watchdd002/winnt4arch.gif
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGまたHurd使い始めるかな。
0205: デフォルトの名無しさん
NGNGまあおれはBSD使ってるから大丈夫だけどな。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGおまえもか。おれもさ。
お互い勝ち組でいこうや
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGシグナルハンドラの中から例外を出してもうまくいきませんでした。。。
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG>LinuxでSIGSEGVやSIGFPEなどのエラーシグナルが発生した場合に、
そのシグナルを出すことがむしろ問題だぞ。
バグのあるソースを修正しろYO。
0213デフォルトの名無しさん
NGNGそうか、マイクロカーネルな BSD であらせられる Mac OS X 様は最高か!
0215デフォルトの名無しさん
NGNGstatic SignalCode = 0;
static void Handler(int Code){
SignalCode = Code;
}
sigaction(SIGSEGV, Handler の登録);
sigaction(SIGFPE, Handler の登録);
try {
/* なんかの処理 */
if(SignalCode != 0) throw SignalCode;
/* なんかの処理 */
if(SignalCode != 0) throw SignalCode;
/* なんかの処理 */
if(SignalCode != 0) throw SignalCode;
} catch(int Code){
/* シグナルの処理 */
}
とやるぐらいしか思いつかん。
>>212
SIGSEGV や SIGFPE の原因が必ずしもソースにあるわけじゃないぞ。
0216デフォルトの名無しさん
NGNGそれとも、そのアプリがうまく動く自身が無いのか?
0217デフォルトの名無しさん
NGNG「SIGSEGV や SIGFPE が発生した場合には、C++の例外を投げる」
という仕様を与えられて数値計算か何かのライブラリを作ってるんじゃないの?
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNGfeclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag, fetestexcept
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG落ちてやるのがみんなのためかと。
0223デフォルトの名無しさん
NGNG小さい文字が改行の位置に出てくるのですが・・・
これは何なのでしょう
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG印刷時にそのコード(CL)で改ページするって奴ね。
0227デフォルトの名無しさん
NGNGhttp://www.google.com/search?q=foldoc+form+feed&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8
0228デフォルトの名無しさん
NGNGローカルに持ってくる時に改行コードが変わったとか。
何にしてもエディタ依存の様な。
0229デフォルトの名無しさん
NGNG>>223の話を聞くと1行ごとに改ページが入っていそうな。
0230デフォルトの名無しさん
NGNG使ったエディタと読んだソースを書け。
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0x0C の事なら書式送り (form feed) だし、FF とか ^L と表すからね。
0233デフォルトの名無しさん
NGNGエディタによっては普通に見られるね。
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG> 「改頁コード」なんか知らん。
改頁コード: 65件
改ページコード: 219件
書式送り: 109件
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG/::::::::::: ....:::::::::::::::::::::i:::!`、:ト、::::::::::::i i! / i >>238
i ...::::::|'、ヽ;::::::::::::::|,!:!__リ,,'iヽ::l''、:'、 / /
| ..::::::::;:::i!:i ヾ:、ヽ:::::::::| リ , -─ リ i;il:ヽ, i / あはははは〜
l:::::::::::::::i',i ':i ,メ、 \;:l '゙ `、 !::::/l ...::::::/``ヽ
l::ヽ:::::ヽ:i,レ',.゙-‐'''' ',/'/..::::::::::/ l'ヽ;、
i:::::>、:ヾ,' / _,.. -‐'ヾi ,レ'::::::::::;r':.. / i_\
i:::i. `'‐,ゝ i" '! ,.‐''" :::::::::::i゙::::::::.../. ノ 'i
!::\ `ヽ ':, l{ ..:::::/::L,. ‐'":::::;/ !
l::::::::`''‐r\ ヽ.,__,.ノィ'‐-‐''"'ォ‐--,゙弋''''"::::::;.ノ
|::::::::;ィ:::}、 ``'''─--、-‐ニ┤ ___ハ,`''ーヽ-'=‐''"
0240デフォルトの名無しさん
NGNG/::::::::::: ....:::::::::::::::::::::i:::!`、:ト、::::::::::::i i! / i >>232
i ...::::::|'、ヽ;::::::::::::::|,!:!__リ,,'iヽ::l''、:'、 / /
| ..::::::::;:::i!:i ヾ:、ヽ:::::::::| リ , -─ リ i;il:ヽ, i / あはははは〜
l:::::::::::::::i',i ':i ,メ、 \;:l '゙ `、 !::::/l ...::::::/``ヽ
l::ヽ:::::ヽ:i,レ',.゙-‐'''' ',/'/..::::::::::/ l'ヽ;、
i:::::>、:ヾ,' / _,.. -‐'ヾi ,レ'::::::::::;r':.. / i_\
i:::i. `'‐,ゝ i" '! ,.‐''" :::::::::::i゙::::::::.../. ノ 'i
!::\ `ヽ ':, l{ ..:::::/::L,. ‐'":::::;/ !
l::::::::`''‐r\ ヽ.,__,.ノィ'‐-‐''"'ォ‐--,゙弋''''"::::::;.ノ
|::::::::;ィ:::}、 ``'''─--、-‐ニ┤ ___ハ,`''ーヽ-'=‐''"
0241デフォルトの名無しさん
NGNG今年の流行語大賞はコントロールブレイクとか本気で思ってる人ですか?
0242デフォルトの名無しさん
NGNGlibpngを使い、ダイナミックリンクで読み込んでいます。
これをlibpngが導入されていない環境では、
使用せず、導入されている環境では使用するような方法はあるのでしょうか?
スタティックリンクは使いたくないので・・・。
すいませんが、お願いします。
0243デフォルトの名無しさん
NGNGコンパイル時だったら
$ ./configure <---------
$ make
# make install
実行時の判断は??? >>243
0244デフォルトの名無しさん
NGNG+実行時の判断は??? >>245
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGへー,面白そう.
0248デフォルトの名無しさん
NGNGバイナリ配布なら,staticにリンクするべき。
0249デフォルトの名無しさん
NGNGそんなに愉快にI/Fは変わらないので問題なしです。
0250デフォルトの名無しさん
NGNG本題とはずれるけど、glibcではsymbol versioningが使えるらしい。
ttp://www.gnu.org/software/libc/FAQ.html#s-1.17
0251デフォルトの名無しさん
NGNG1. longjmp( )は、シグナルハンドラからの使用を考慮されている、
あるいは使用例としてよく出てくるんですが
実際、シグナルハンドラからのlongjmp( )は安全ですか?
というのは、3Cの関数あたりからシグナルが発生したときに
メモリリークやなにかの状態不一致など発生しないよう考慮されているんでしょうか?
たとえば、malloc( )の中でメモリブロックのチェインを組み替えている
途中でシグナル ->longjmp( ) ->組み換え中おメモリブロックは忘れ去られたまま
なんてことにはならないようになっているんでしょうか?
2. シグナルハンドラとそうでない部分との排他制御は
そうでない部分で、シグナルをマスクするだけで十分ですか?
3. シグナルハンドラが実行されているさいちゅうに
多重に呼び出されることはありますか?
0252デフォルトの名無しさん
NGNGs/組み換え中おメモリブロックは忘れ去られたまま/組み換え中のメモリブロックは忘れ去られたまま/
ごめんなさい。
0253デフォルトの名無しさん
NGNG1.シグナル受信時は即時にハンドラを起動しない。
malloc時はアトミックに処理するはず。
2.>シグナルハンドラとそうでない部分との排他制御は
>そうでない部分で、シグナルをマスクするだけで十分ですか?
言ってる意味がわからん。そうでない部分とは?
3.>シグナルハンドラが実行されているさいちゅうに
>多重に呼び出されることはありますか?
何が多重かわからんのだが、シグナルハンドラ処理時に同じシグナルを受けた場合は
ブロックする。多重には実行されない。
RTFM
0254デフォルトの名無しさん
NGNG>>210
>LinuxでSIGSEGVやSIGFPEなどのエラーシグナルが発生した場合に、C++の例外を送出したいのですが、どうしたらいいでしょう?
>シグナルハンドラの中から例外を出してもうまくいきませんでした。。。
もし、バグでメモリを破壊していてSIGSEGVになったらどうする?
その作りは、信号が赤信号であるのにそのまま突っ走るようなものだな。
いつか衝突するぞ。そして原因究明が困難なものになるだろう。
0255デフォルトの名無しさん
NGNG> というのは、3Cの関数あたりからシグナルが発生したときに
> メモリリークやなにかの状態不一致など発生しないよう考慮されているんでしょうか?
それは君の仕事です。
> 2. シグナルハンドラとそうでない部分との排他制御は
> そうでない部分で、シグナルをマスクするだけで十分ですか?
シグナルに対する排他としては十分です。
ブロックされている間シグナルはプロセスに運ばれませんから。
> 3. シグナルハンドラが実行されているさいちゅうに
> 多重に呼び出されることはありますか?
UNIXによって方言があります。最近のは全部ブロックするはずですが。
0256デフォルトの名無しさん
NGNGそう言ったらあるWindows鯖ソフトの作者にバカにされたよ。
そいつは嬉々として一般保護違反を隠しながら動く痛いソフトを神面して配布しているよ。
0257デフォルトの名無しさん
NGNG(一部の)signalには、異常報告の意味があるけど、
その時にC++の例外を投げて欲しいというのは、
ごく自然な要望だ。
0258デフォルトの名無しさん
NGNGで、問題はそれを誰に投げるかって話だな。
0259デフォルトの名無しさん
NGNGPOSIX的にはlongjmp()はsignal maskの扱いについてunspecifiedなんで、
できることならsiglongjmp()を使っとけ。
ttp://www.opengroup.org/onlinepubs/009695399/functions/longjmp.html
あと、このページ、
ttp://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html
特に下の方の async-signal-safe な関数の一覧も読んどけ。
0260デフォルトの名無しさん
NGNG> malloc時はアトミックに処理するはず。
本当ですか?
0261デフォルトの名無しさん
NGNGひょっとしてアトムの弟ですか?
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGRTFS
0264デフォルトの名無しさん
NGNGhttp://www.science.uva.nl/~mes/jargon/r/rtfs.html
これ?
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGなんかいいライブラリないの?
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGC++だったらboost::tokenizerとかあるけど
0271デフォルトの名無しさん
NGNG1.スレッドに対してアトミックなのか?
2.シグナルに対してアトミックなのか?
3.プロセッサに対してアトミックなのか?
3ならば1,2を満たす。1と2は無関係。
ここで問題なのは2なんだが、mallocがアトミックなのは1じゃないのか?
0272デフォルトの名無しさん
NGNGスレッドに対してアトミックでも嬉しくも何ともない予感。
別のスレッドが確保してるであろうメモリに非同期にアクセスしに行くなんて自殺行為な訳で。
とか煽りつつどんなメリットがあるのか聞いてみたいテスト。
0273デフォルトの名無しさん
NGNG>>271 は、malloc() がスレッドセーフであろう、というようなことを言ってると思われ。
そうして、もちろんそうでなければ使い物にならない。
0274271
NGNG>別のスレッドが確保してるであろうメモリに
>非同期にアクセスしに行くなんて自殺行為な訳で。
>とか煽りつつどんなメリットがあるのか聞いてみたいテスト。
では煽られつつ答えるテスト。
malloc( )はヒープというプロセスに1つ、スレッド間で共有された資源
の操作をする関数。
獲得以降がスレッド個別の資源だと仮定すると、
malloc( )は共有資源を個別資源にする関数。
そのためには共有資源への操作が必要。
だからアトミックである必要がある。
当然free( )も同様。
>別のスレッドが確保してるであろうメモリに
>非同期にアクセスしに行くなんて自殺行為な訳で。
非同期にアクセスしたら死ぬけど、
非同期にならんようにミューテックスとかあるんじゃないのか?
0275デフォルトの名無しさん
NGNGいくら排他しても処理途中で割り込まれる要素があればそれはアトミックとは言えない気がします。
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGおそらく中途半端な知識を持ってる人が結構誤解するのかもね。
0282デフォルトの名無しさん
NGNG> 1. longjmp( )は、シグナルハンドラからの使用を考慮されている、
> あるいは使用例としてよく出てくるんですが
> 実際、シグナルハンドラからのlongjmp( )は安全ですか?
ttp://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html
より引用。
> In the presence of signals, all functions defined by this volume of
> IEEE Std 1003.1-2001 shall behave as defined when called from or
> interrupted by a signal-catching function, with a single exception:
> when a signal interrupts an unsafe function and the signal-catching
> function calls an unsafe function, the behavior is undefined.
で、malloc()もlongjmp()もsiglongjmp()もsignal unsafe。
よって、「malloc()中にシグナル発生 → シグナルハンドラ内でlongjmp()
(またはsiglongjmp())呼び出し」となった場合の動作は「undefined」。
実際にglibcのソースを眺めてみたが、シグナルに対して特別なことをやっては
いないみたいだから、メモリリークやデッドロックが発生する可能性があるな。
> 2. シグナルハンドラとそうでない部分との排他制御は
> そうでない部分で、シグナルをマスクするだけで十分ですか?
OK.
> 3. シグナルハンドラが実行されているさいちゅうに
> 多重に呼び出されることはありますか?
ここらへんについては、BSD由来のsignal()とSysV由来のsignal()とで
挙動が大きく違っていたが、新しいシグナル操作関数であるsigaction()では
そこら辺の混乱が解消されている。
ttp://www.opengroup.org/onlinepubs/009695399/functions/sigaction.html
SA_NODEFERの項を見よ。
0283282
NGNGttp://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html
すなわち、複数のスレッドが同時にmalloc()を呼び出しても安全ということ。
0284デフォルトの名無しさん
NGNG割とメジャーなもので SIGSEGV をトラップしているものとしては、mpeglib なんかがある。
これは、MPEGデコーダの性質上
・入力データは外部から与えられるため、信用できない(変なデータって実は結構ある)
・デコード処理は高速性が求められるため、最も内側のループにはエラーチェックを入れにくい
(実際のとこチェック不可でエラーが発生する箇所は、DCテーブルの再構築時がほとんどみたいです)
・エラーが発生したとき、止めるよりはちょっと画像が乱れるだけで動いてくれた方が(大抵は)うれしい
・ストリームを適当に先へ進めば、エラーをリカバリできるポイントが見つかる
から。
IA32 でいうところの 0:32 モデルじゃなくて、怪しげな操作をするときには 32:32 で
厳しくアクセス可能な範囲を限定したポインタが使えるとこういうとき便利っぽいですよね。
0285デフォルトの名無しさん
NGNGもうしわけありません。
どうもSIGSEGVをトラップする利点がわかりません。
SIGSEGVがある特定の区間以外発生することは無いっていうことなのでしょうか?
0286デフォルトの名無しさん
NGNG>IA32 でいうところの 0:32 モデルじゃなくて、怪しげな操作をするときには 32:32 で
>厳しくアクセス可能な範囲を限定したポインタが使えるとこういうとき便利っぽいですよね。
これってどういう意味なのでしょうか?
0287デフォルトの名無しさん
NGNGごめんなさい。16:32 の間違いでした。
セグメント(セレクタ)16bit, オフセット32ビットのポインタを使ったメモリアクセスのことです。
0288デフォルトの名無しさん
NGNG既に 284 で4つ理由を書いています。
どれに同意できない(あるいはわからない)のですか?
0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNGぬるぽ^H^H^H NullPointerException を検出するために
SIGSEGVをトラップしているものが多い。
# もちろんSunのHotspot VMもそう。
0292デフォルトの名無しさん
NGNGガッ!!^H^H^H^H
0293デフォルトの名無しさん
NGNGリカバリなんてできるんですか?
0294デフォルトの名無しさん
NGNG>・入力データは外部から与えられるため、信用できない(変なデータって実は結構ある)
>・デコード処理は高速性が求められるため、最も内側のループにはエラーチェックを入れにくい
> (実際のとこチェック不可でエラーが発生する箇所は、DCテーブルの再構築時がほとんどみたいです)
>・エラーが発生したとき、止めるよりはちょっと画像が乱れるだけで動いてくれた方が(大抵は)うれしい
>・ストリームを適当に先へ進めば、エラーをリカバリできるポイントが見つかる
これはSIGSEGVになる可能性があるという作りだってことですか?
そもそもSIGSEGVにならないように作らなければならないと思っていたのですが。
0295デフォルトの名無しさん
NGNGコードのこの範囲でSIGSEGVが発生する可能性があってそれはこうこうこういう状況で
その時はこうすればリカバリできるって完全に把握してSIGSEGVを受けとる場合がある
のよ。
普通のプログラムがバグなんかで予測してない挙動してSIGSEGVで落ちてるような状況
とは違う。
そういうプログラム書いてる時にバグ作りこんじゃうとどつぼにはまるけどね。
0296デフォルトの名無しさん
NGNG(実際のとこチェック不可でエラーが発生する箇所は、DCテーブルの再構築時がほとんどみたいです)
↑こんなの絶対に使いたくねー!!
0297デフォルトの名無しさん
NGNGわたしはそれは在日韓国人に対する差別だと思うんです。
第二次大戦中の日本国民の韓国人に対する強制徴用、大量虐殺に始まり
今日での在日韓国人に対する差別。
その最たるものが在日韓国人に参政権がないことです。
日本人と同じく税金を払い義務を果たしているにもかかわらず、です。
ところが今回の参院選ではなんと民主党が在日韓国人に参政権を与えることを公約としています。
そこで我々冬ソナファンがヨン様の国、韓国の人々のために
立ち上がろうではないですか!!
冬ソナファンの力で民主党に政権を取らせ、在日韓国人の参政権獲得の手助けをしましょう!!
ヨン様のためにがんばろう!!!
0298デフォルトの名無しさん
NGNG>コードのこの範囲でSIGSEGVが発生する可能性があってそれはこうこうこういう状況で
>その時はこうすればリカバリできるって完全に把握してSIGSEGVを受けとる場合がある
>のよ。
SIGSEGVが発生する可能性がわかっているならば、そうならないように作るべきでは?
それを知っていてあえてSIGSEGVを受信するような作りがよくわからないのです。
それが仕様であることはわかるんですけど、自分はその仕様に納得がいきません。
0299デフォルトの名無しさん
NGNGそうならないように自前のチェック入れると処理が重たくなるということでは?
0300デフォルトの名無しさん
NGNGまだ運がよくて、スタック書きつぶしたりしたら下手
すりゃセキュリティホールだよな。
間違えて読んじゃうだけならぎりぎりセーフ?
0301デフォルトの名無しさん
NGNG・SEGVが発生する条件は完全に特定できている(ゼロ除算とか)
・それを回避する方法も分かりきっているが、コストがかかるので避けたい
場合に使うんじゃないの。
0302デフォルトの名無しさん
NGNG納得がいかなくてもやらざるを得ない、時の手段ってことでしょ。リミター解除して高速飛ばすようなもん。
これぞまさしく「素人にはお勧めできない」。
玄人にもお勧めできないけど。
0303デフォルトの名無しさん
NGNG>・SEGVが発生する条件は完全に特定できている(ゼロ除算とか)
ゼロ除算ってSIGSEGVでしたっけ?
もしかして、SIGSEGVに限らずsignal全般ってことを言いたいのでしょうか?
0304デフォルトの名無しさん
NGNG>そうならないように自前のチェック入れると処理が重たくなるということでは?
高速化の為にSIGSEGVをあえてするか堅牢性をあげるためにセキュリティ重視をするかって言われたら、
自分は後者を選ぶ。
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG激しく同意。
mpeglibという名前からしてライブラリなんだろうけど、絶対に使いたくないな。
0307デフォルトの名無しさん
NGNGいや、使うところ違うし。
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG結局環境依存では。
0310デフォルトの名無しさん
NGNGしてるライブラリが有って感心した記憶がある。変則的な手段だとは思う
けど、忌み嫌うほどでも無いと思う。
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGMS Windowsでも、その汚いけれども高速な手段を結構使ってるらしいですね。
0313デフォルトの名無しさん
NGNGようするに、「動けばいいや」ってことですか?
であるならば、もう何も言うまい。
0314デフォルトの名無しさん
NGNGunixはそこがダサい
0315デフォルトの名無しさん
NGNGmpegのデコードの話だろ?
テーブル引くのに入力をチェックしないってだけじゃねーの?
不正な入力なら絵が壊れてもいいって割り切りでしょ。不正ならどうせ壊れるんだし。
0316デフォルトの名無しさん
NGNGプログラムの終了には全スレッドにシグナルを投げる必要がある?
0317デフォルトの名無しさん
NGNGprocess globalな割り込みが無いほうが困るのでは
0318デフォルトの名無しさん
NGNGたしかにシグナルはグローバルな設定だが・・・
0319名無しさん@そうだ選挙に行こう
NGNG取りあえず晒しage
0320名無しさん@そうだ選挙に行こう
NGNG0321名無しさん@そうだ選挙に行こう
NGNG?
0322名無しさん@そうだ選挙に行こう
NGNGposix realtime extension
ちなみに昔null accessをSIGSEGVのsignal handlerで処理している
Lisp処理系があった。まあ別に速くはなってないと思うが。
0323名無しさん@そうだ選挙に行こう
NGNGシグナルハンドラではグローバルなフラグを立てる感じ?
0324名無しさん@そうだ選挙に行こう
NGNGOS毎に非ポータブルなハイパフォーマンスAPIがあるからそれ使え。
それがkqueueとは限らない。
0325名無しさん@そうだ選挙に行こう
NGNGライブラリAとライブラリBがsignalの奪い合いをする可能性がある、ってこと?
まああんまり気にしたことはないけど。
ああ、JavaでJNI使うときに一度ハマったねぇ
0326名無しさん@そうだ選挙に行こう
NGNGて言うかシグナルをトラップするようなライブラリ好んで使うなと。
0327名無しさん@そうだ選挙に行こう
NGNGいや、longjmpしてLispの(throw ...)へ突入。
0328名無しさん@そうだ選挙に行こう
NGNG0329名無しさん@そうだ選挙に行こう
NGNGこうなると構造化もへったくれもないですな。
C++とかなら舜殺しそう。。。
0330251
NGNG質問したものです。
回答してくださったみなさま、ありがとうございます。
参考にさせていただきます。
特に、>>282さんの回答は根拠もしめされてまして
大変なっとくいくものでした。
ありがとうございました。
0331魔方陣
NGNGc 氏名 日付
program pr2
integer a,i,j,k,l
parameter(n=3) !n は奇数
dimension a(n,n)
print '(1x,a,i2)','pr2 魔方陣 n=',n
print *,'学生番号 氏名’
do k=0,n-1
do l=0,n-1
i=(k+l)*2+(n+1)/2+2
j=l-k+(3*n+1)/2
a(mod((i-1),n)+1,mod((j-1),n+1)=n*k+l+1
end do
end do
do i=1,n
print '(9i5)', (a(i,j), j=1,n)
end do
end
これは3×3で、課題はこれを9×9で計算して提出しろ、というものなんですが、
どこをどう変えればいいのかわかりません。
助けてください。
0332名無しさん@そうだ選挙に行こう
NGNG0333名無しさん@そうだ選挙に行こう
NGNGWin32だとSEHがありますからね。
あれはtry - catch - finallyのセマンティクスで使えるから
ものすごく楽だし美しい
まあスタック巻き戻しの際にお掃除とかしてくれるわけじゃないから
C++ではいまいち使い物にならないけど
0334名無しさん@そうだ選挙に行こう
NGNGC++では普通に使用禁止です。
0335デフォルトの名無しさん
NGNG喪前らが普通に使っている JPEG ライブラリ、MP3 ライブラリ、MPEGデコードライブラリの
大半はトンでもない不正データを食わせると sigsegv 起こしますよ。
んで、たかだか「入力ファイルが変」ってだけでバキバキ落ちる画像・動画再生プログラムは
ユーザに受け入れられませんよ。
0336デフォルトの名無しさん
NGNGそれが検証できるデータはありますか?
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNGUNIXの世界で有名なミスターtheo氏がそのようなことを言ってましたが。
0339デフォルトの名無しさん
NGNGは?暗記してないの?
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNGしてるんですか?
0342デフォルトの名無しさん
NGNG暗記パンとか使って
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG忘れてくれ・・
世代の違い?
ドラえもん 暗記パン
あたりで検索してみて
当然だろ。
0346デフォルトの名無しさん
NGNG最後は食べ過ぎたのび太が自爆するんだっけか?
エネルギーを吸収する敵にはキャパ以上のエネルギーを叩き込んで自己崩壊を待つ。
昔のアニメの定石ですな・・・。
0347デフォルトの名無しさん
NGNGrm -f calculation.o
gcc -g-c ship.h -lm
gcc:Compilation of header
file requested
make:***[calculation]
Error1
と出力されます.
今日初めてwindows環境でUNIXを使うのですが、これの解決策を教えて下さいませんか.
お願い致します.
デスクトップ上の問題なのでしょうか?
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1058134693/286
http://pc5.2ch.net/test/read.cgi/unix/1086622860/207
0351デフォルトの名無しさん
NGNGかなり高価だけど、真剣に読み進めてプログラミングを繰り返していくと
技術が腕に染み込んでいくのがわかる。
0352デフォルトの名無しさん
NGNGうわ〜染み込んでる〜。
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG少し位筋肉がないとモテんぞ。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGこの人のネットワークプログラミングの本は、
今でも漏れのバイブルです。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG単にUNIXに詳しいだけの人がああいう本を書けるのかどうか。
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG上のコマンドの>と/dev/null
の意味は何ですか?。
0362デフォルトの名無しさん
NGNGLinux板のくだ質逝け
0363デフォルトの名無しさん
NGNG環境と言語くらい書け。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGそうだと思うが、書いた本人が判って無いと思う。
0368デフォルトの名無しさん
NGNG上書き確認とか。
0369デフォルトの名無しさん
NGNGNo such file or directory
Permission denied
とか、いろいろ。
0370デフォルトの名無しさん
NGNGcpって エ ラ ー 以 外 なんか出力したっけ?
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGrm -rf
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG親を殺して彼女は悪魔となりました。
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG親の方が長く生き続けるっていう概念なのかな。
man 2 wait
まぁ、そもそも人間社会にあてはめること自体がおかしいのだけどね。
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGwaitで正しく看取られて初めて成仏する。
親なき場合は神の子initが月に代わって成敗する。
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNGunixとwindows双方から印刷できるようにLPDを使用しているのですが、
windows から lpr にて印刷する場合portなどを指定しなければならず、
パソコンをあまり使用しない人には使いにくいので、LAN接続されてい
るプリンタ一覧を表示したいのですが、プリンタ情報を取得するAPIな
どありますか?
0387デフォルトの名無しさん
NGNG商用ならサポートへ
フリーのやつなら環境書け
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG1000,10,AB
2000,11,ABCDE
3000,12,AB
てな感じのテキストファイルを
1000,10,AB△△△
2000,11,ABCDE
3000,12,AB△△△
※△は全角スペースのつもり
でな具合に固定長になるよう空白埋めしたいんだけど、
この処理はシェルだけで実現できる?
0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNG実は時間がなくて、シェルで組めないか時間がかかりそうであれば、
他の手段に切り替えないといけなくなってしまったのよ。
(書き方が悪かった。 スマソ)
やれば、なんとかできそうなのね。
0392デフォルトの名無しさん
NGNG時間がかかりそうって何だよ,糞野郎?
0393デフォルトの名無しさん
NGNG子は親の鏡ですからね。
0394デフォルトの名無しさん
NGNGawk呼び出してfilterしろよ。
0395デフォルトの名無しさん
NGNGうむ。できるね。
何かすぐCで考えちゃう自分に反省。
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG特にtestもexprもないようなshellだとかなりつらそうだ。
パズルとしては楽しめるかもしれない。
外部コマンドありならawkでもperlでも呼びゃ一発なので
つまらん。perlを呼ぶだけのスクリプトをshellスクリプト
と呼んでいいかというギモンはあるけどな。
ということでshellだけで書いたソース希望。
0398デフォルトの名無しさん
NGNGbash?csh?
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG同一セグメント内の全アドレスへ対して、
snmp情報情報を取得して判断する、
TCPなら、9100番へconnectしてRSTが帰ってこないか、
UDPならICMPのエラー返答
などで判断するしかないんじゃない?
API一発はむり。
0401デフォルトの名無しさん
NGNGシェルって言ったらExplorerに決まってるだろ
0402デフォルトの名無しさん
NGNGUNIXでsamba動かして、printer serverやれば?
0403デフォルトの名無しさん
NGNGアホか。プログラムマネージャだ。
0404デフォルトの名無しさん
NGNGばーか、DOSSHELL しかないだろ。
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNGおまえんちの/dev/nullには+xが付いてる訳だな。
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG残念ながらハズレです;
0412デフォルトの名無しさん
NGNG環境に応じて各自書き換えるくらい常識だろ。
0413デフォルトの名無しさん
NGNG%WINDIR%
まぁ、両刀使いからしたら常識な訳だが。
0414デフォルトの名無しさん
NGNGWinから接続してコンパイルしてんですけど、UNIXって
VC++みたいにステップ実行できる環境ってないんですか?
0415デフォルトの名無しさん
NGNGgdb。
emacsがあればモアベター
0416デフォルトの名無しさん
NGNGWindowsのcygwinのXFree86入れてdddとか。
0417デフォルトの名無しさん
NGNGタイムアウト設定してポーリングっていうのは負荷がかかりそうなのであまりやりたくないです。
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNGインタプリンタじゃあるまいし。
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGタイムアウト時間無しのselectに書けるというのはどうか?
0424デフォルトの名無しさん
NGNG取りあえず>>421みたいになんでも夏と言えば解決すると思ってる方がにわかに急増するのも夏ならではですね。
0425デフォルトの名無しさん
NGNGどこかで聞いたような…
ステップ実行できない環境でも、不便に思ったことはないな。 作り方にもよるんだろうけど。
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNGってそんなに負荷かかるんですか?
0430デフォルトの名無しさん
NGNG実測なさい。
0431デフォルトの名無しさん
NGNG手法は?
0432デフォルトの名無しさん
NGNG好きになさい。
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNGfor(;;);
と
for(;;)sleep(0);
とはかなり意味が違う
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGじゃあベンチ取れば?
0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGで、解決しようとする奴が大量に沸くのも夏ならではでし。
0443デフォルトの名無しさん
NGNG少なくともOSに制御は帰る・・・のか?
0444デフォルトの名無しさん
NGNGOS?カーネルの事だね。
0445デフォルトの名無しさん
NGNGそこまでするとなると、もはや制御系のコーディングだ。
0446デフォルトの名無しさん
NGNG制御系であんな高級なスケジューラを使わせてもらえる事なんて希です。
0447デフォルトの名無しさん
NGNGリアルタイムOSって制御系的な分類で良いんでしょうか?
0448デフォルトの名無しさん
NGNG0449句読点書けないバカをサマージャンボする俺
NGNG0450デフォルトの名無しさん
NGNG制御系ではリアルタイム性が必要なことが多いつーだけでしょ。
ちなみにリアルタイム性というのは、
ある事象に対して一定時間内に反応できることが保証される
みたいなこと。
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNGハードリアルタイムはそう言う位置づけですね。
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG似非リアルタイム=まあこんなもんやろ派
0455デフォルトの名無しさん
NGNG450が言うように、一定時間内に反応できることが「保証される」ということが重要。
一定時間がどれくらいかというのは用途によって異なる。
0456デフォルトの名無しさん
NGNG?
0457デフォルトの名無しさん
NGNGものすごく多いプロセスを生成、実行しても保証されるわけ?
そういうことが可能なんですか?
0458デフォルトの名無しさん
NGNG実行形の資源が有限である以上そんなこと不可能なの常識で分かるでしょう。
0459デフォルトの名無しさん
NGNGリアルタイムOSってゆーんじゃ?
0460デフォルトの名無しさん
NGNGでは、そのリアルタイムOSのスペックには
最大同時生成プロセス数〜個とか書かれているのでしょうか?
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNGそう言う場合もあるかも知れん。
0464デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JF/JFdocs/RTLinux-HOWTO.html
0465デフォルトの名無しさん
NGNG0466460
NGNGほう、なるほど。
ざっと見てみたが、うーむ、どうやって保証してるのでしょうか?
それとも、リアルタイムOSを使用する方は、
ある機器上でリアルタイムOSを動かし、計測しながら、
アプリを設計、作成していく物なんでしょうか?よくわからんが。
0467デフォルトの名無しさん
NGNG最終的にはそらそうでしょう。ユーザアプリの応答性なんぞ保証できん。
0469デフォルトの名無しさん
NGNG特定のカーネルスレッドだけ保証したりする訳よ。
後はそのオコボレのCPU使うわけ。
0470デフォルトの名無しさん
NGNGユーザプロセスに対するリアルタイム性の「保証」って言うのは、例えば
・少なくとも 18msec 毎にプロセスにCPUが割り当てられる
・CPUが割り当てられた場合には、少なくとも5msecはCPU時間を消費することができる
という風にスケジューリングが厳密に行われる、ということです。
んで開発者はそれらの情報+ハードウェアのスペックに基づいて、
時間内に実行可能なアルゴリズムを選択してプログラムを書く。
ビデオ再生なら「720x480x30fpsはOKだ。でもAAC音声のデコードは無理なのでAC3にしよう」とか。
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG馬鹿晒して嬉しいですか?
0475デフォルトの名無しさん
NGNG申しているところあるようですが。
そうするとハードリアルタイムといってる達は、
誇大宣伝をうたってるという事ですか?
0476デフォルトの名無しさん
NGNG極論馬鹿はどこにでもいるからこればかりはどうしようもない。
0477デフォルトの名無しさん
NGNG誰がもうしているって?
0478デフォルトの名無しさん
NGNG_SOMECOSTANT
__SOMECONSTANT
_SOMECONSTANT_
__SOMECONSTANT__
とか色々と異なるスタイルのものがありますが、
これらに何か意味があるのでしょうか?
0479デフォルトの名無しさん
NGNGなるべく他とかぶらないように♪
0480478
NGNGということは、_がたくさん付いている変数ほど、新しく定義された変数ということでしょうか?
_がたくさん付いている変数ほど実際にプログラムから参照される頻度が高いということですか?
0481478
NGNGもう来ません。
0482デフォルトの名無しさん
NGNGお前は頭に_, __をつけるな。
言いたいことはそれだけだ。
0483477
NGNG0484デフォルトの名無しさん
NGNGgoogleは、あなたのお友達。
0485483
NGNGああなんだ、ここの住人が申しているということじゃないのか。
0486デフォルトの名無しさん
NGNG体系的に説明しているサイトおしえてクレクレーヌ
0487デフォルトの名無しさん
NGNG0488486
NGNGまだそのレベルまで逝ってないYO!
0489デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=bash+%E5%85%A5%E9%96%80
0490486
NGNGテキストのみがいいの〜
じゃないと嫌なの〜
0491デフォルトの名無しさん
NGNGhttp://www-6.ibm.com/jp/developerworks/linux/000714/j_bash.html
http://www-6.ibm.com/jp/developerworks/linux/000714/j_bash2.html
http://www-6.ibm.com/jp/developerworks/linux/000714/j_bash3.html
0492486
NGNGサンクスコ
0493486
NGNG0494デフォルトの名無しさん
NGNG0495486
NGNGそんなこと言わないでおしえてYO!
0496デフォルトの名無しさん
NGNG頑張れや。
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNGこいつをdaemonプロセスにしないといけないんです。
forkを使えば処理は行えるのですが
終了処理を外部コマンドから
入力して正常終了するようにしたいです。
killコマンドとかじゃなく・・・
どのようにすればいいのですか?
ぐぐってもぜんぜん情報にありつけず困ってます。
よろしくおねがいします。
0500デフォルトの名無しさん
NGNG外部コマンドは kill -TERM `cat pidfile` のシェルスクリプトで十分。
0501デフォルトの名無しさん
NGNG共有メモリを使用するのはだめですか。
0502デフォルトの名無しさん
NGNGむやみに複雑にするメリットはないだろ?
それにdaemonプロセスを終了させるのは1番普通のやりかた。
0503デフォルトの名無しさん
NGNGそれにシグナルでdaemonプロセスを終了させるのは1番普通のやりかた。
0504デフォルトの名無しさん
NGNGクラスとかがりがり使ってるんですが
それだとデストラクタとかも普通に動いてくれるのですか?
シグナル検地するとグローバルの関数への指定しかできないため
うまく終了処理にいけないとおもうのですが・・・
クラスにstaticなメンバーつくって終了処理をっていうことが
できればいいんですが・・・
0505デフォルトの名無しさん
NGNG普通はシグナルハンドラでは、
(フラグを立てるなりして)メインのアプリケーションロジックに
対して終了依頼があったことを通知するだけ。
そっから先は喪前様のプログラムがちゃんと外部からのイベントを
契機として終了可能にできているかどうか次第。
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG意味がわかりにくひ・・・きっと「異常」ってのは編集ミスで残ったに違いない!
0508デフォルトの名無しさん
NGNGkillコマンドじゃなくとか、デストラクタがとかゆってはるから。
0509デフォルトの名無しさん
NGNG・シグナルで終了依頼を受けること
・きちんと終了すること
この2つは別のことだよ、って言ってたのかと思った。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG色んな概念が分り易いよな。
0515デフォルトの名無しさん
NGNG牛たちに勝利せよ!21世紀らしい斬新なOS名だな。
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG> シグナルハンドラが走った時点でlongjumpが入るから、
そりゃお前のプログラムの問題だろ。
0518デフォルトの名無しさん
NGNGよくわかってないですがメッセージキューみたいにシグナルハンドラの実行を任意の時点まで遅延できるんですか?
0519デフォルトの名無しさん
NGNGsigsetmaskとか
シグナルハンドラにごちゃごちゃ書くのは感心しないが。
0520デフォルトの名無しさん
NGNGあ、キューの排他が要るね・・・
0521デフォルトの名無しさん
NGNGメイン処理でキューの排他中にシグナルハンドラが走ったら困りませんか?
待ってても処理はシグナルハンドラに移ってるからいつまでも解放されることがないわけで。
キューへの処理がアトミックなら問題ないんですけどね。
0522デフォルトの名無しさん
NGNGNIX関係ないプログラミング初級の話なんだが、
メイン処理のキューの排他を、
signalのブロックで囲めばいい。
メンスレッドがI/O扱う類いのものなら、
>>510も検討せよ。
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGようなものってことですか?
マンドクセ。
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG実行環境がLinuxでC++でマルチスレッドを使っているんだ。
その上シグナルを入れたら、不思議な踊りを踊り出すぞ。
>>499はリチャードの本を一度読んでからやった方がいいってこった。
0530デフォルトの名無しさん
NGNG汎用シグナル送信コマンドなのに、killなんていう過激な単語を割り当ててしまったせいで
>>499のような初心者がこのコマンドを悪魔のように感じてしまう。
責任者でてこーい!
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG大昔はプロセスを止めることしか出来なかったので、
理にかなった命名なのです。
creat(2)と同じで、伝統のある名前なのです。
しかし…いくら互換性といっても物には限度があるよなあ。
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGとかやってヨダレたらしてるおまいらが言うなよwww
0535デフォルトの名無しさん
NGNG悪魔のように感じるぐらいで丁度いいんだよ。
それが汎用シグナル送信コマンドであることを理解しないうちは、「デーモン」なんか書いてはいけないということだ。
0536デフォルトの名無しさん
NGNGdaemon=悪魔とか言ってる奴も然り。
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGというか、シンボルなんて他と違うことだけに意味を持つっていう
原則に拘るべきだな。UNIXみたいな30年も互換性を維持してきた
システムならなおさら。物事を抽象的に眺められる視点が得られるなら
ものの名前なんてどうでもいいと思うね。もちろん分り易い名前が
ついてるに越したことはないけど、そこばかりに目が逝ってしまう
ようじゃダメだろう。
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGどこを縦読み?
0542デフォルトの名無しさん
NGNGおれなんかおかしなこと言ったか?
0543デフォルトの名無しさん
NGNGものの名前なんてどうでもいいと思うね。
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNGそのうちシステムとユーザーひっくるめてWindowsにリプレースされます。
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNG物事を抽象的に表現するには適切な名前付けが不可欠だと思われ。
お前の各プログラムの基底クラスにmankoとか付けるのいい加減やめてくれ。
0550デフォルトの名無しさん
NGNG0551名案!
NGNG0552マリー
NGNG0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNGそんな窓みたいな手法はいや。
でも、WaitForMultipleObjectsみたいなのがときどき欲しくなるなあ。
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNG禿しく同意。
ttp://docs.hp.com/ja/B2355-60104-05/sigwait.2.html
> マルチスレッドプロセスでのシグナル処理法として推奨する方法は、すべての
> スレッドで重要なシグナルをブロックさせ、1つのスレッドをsigwait関数呼び
> 出し専用にして、シグナルを待たせることです。
0558デフォルトの名無しさん
NGNGん?今からwebサイトでっち上げて好き勝手な論理を正当化しても良いんだが。
0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGスクリプトのコーディングなんてテキトーでいいんだよ
0561559
NGNGそうですよね、普通規約なんか設けませんよね。
ありがとうございます。
バッチの質問スレで聞いて、それでも同じような回答ならあきらめます。
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNG奴等大量のscriptを書いてたからな。
0564デフォルトの名無しさん
NGNGそこからbashismを除けばいい感じでは?
0565デフォルトの名無しさん
NGNGそこからbashismを除けばいい感じでは?
0566デフォルトの名無しさん
NGNGなんで二回書くの?
0567デフォルトの名無しさん
NGNG一個人の戯言よりはHPの中の人の言ってることのほうが
いかにも信用できそうだろ
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG上記のコマンドを実行したときに、自動的に決まっているパスワード(test123等)も入力されるスクリプトって作れますか?
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNGpasswd << EOF
omaemona
omaemona
EOF
で何とかならないっすか?もっと高度なことをしたかったらexpectだっけ?
0574デフォルトの名無しさん
NGNGunix環境で最も簡単にグラフィックを表示するにはどうすればよろしいのでしょうか?
グラフィック領域の任意の場所に(小さな)bmp画像などを表示する方法が分かりません。
よろしくお願いします。
0575デフォルトの名無しさん
NGNG独立したプログラムでいいの?
それともプログラムの一部にするの? それはどんなプログラム?
0576デフォルトの名無しさん
NGNGウィンドウの中に適当に設定したグラフィック領域です。
プログラムの一部として使いたいのです。
ゲームプログラムで、特定のキャラクターを表示させたりしたいのですが、
グラフィック部分が禿しく難しくて挫折しています。
アルゴリズム部分はどうにでもなるのですが、表示だけが出来ません。
出来れば表示よりもアルゴリズム本体に手間をかけたいので、
最も簡単にグラフィックを表示する方法が知りたいのです。
よろしくお願いしますm(_ _)m
0577デフォルトの名無しさん
NGNG最も簡単ではないかもしれないけど、そこそこ簡単で、たぶん >>574 の使ってる
プラットフォームにも存在して、かつ知っておいて将来役に立つかもしれないものとして
OpenGL を勧める。
「最も」簡単なものは世界中の全てのライブラリを知っている誰かが教えてくれるだろう。
0578デフォルトの名無しさん
NGNGLinuxでGNOMEでC++でゲーム作りたいとか。
ポータブルにハイパフォーマンスに描きたいならOpenGLじゃないの。
0579デフォルトの名無しさん
NGNGbmpはいまいち簡単じゃないけど。
0580デフォルトの名無しさん
NGNGOpenGLなら使えますが、bmpなどを表示するのが激しく難しそうです。
Window全体ではなくて、任意の場所となると。
>>578
まさにその環境です!C++ではなくてCですけど。
>>579
Javaでぐぐってみても、今ひとつ簡単な方法がなかったみたいです。
Javaでもいいのですが、欲を言うとCで作ったプログラムと
協力するプログラムにしたいです。
0581デフォルトの名無しさん
NGNGgnome 使ってるっていうことなら、gtk+ の drawable あたりのサンプル
プログラムでものぞいてみたらどうよ?
0582デフォルトの名無しさん
NGNGxbubbleとかのsourceでも参考にしたら?
↑結構綺麗なコード。
bmpうんぬんはimlib使えば? libgdk-imlibとかさ。
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNGbmp以外も使うならSDL_imageを使えばいいし。
0585580
NGNGそうしてみます。
・・・やっぱり、グラフィックを使おうとすると、ある程度手間はかかるんですね・・・。
>>582
xbubbleが入っていたら使ってみます(自分でインストールする権限がないので)。
>>583
SDLは入ってなかったみたいです・・・。
>>584
SDLって(ぐぐったら)結構便利そうでした。
でも使えない○| ̄|_
0586デフォルトの名無しさん
NGNG「勝手に他所のソフトをコンパイルしちゃいけません」ってこと?
SDL なら ./configure --prefix=$HOME/local とかすれば
自分の権限で入れられるはずだけど。
0587デフォルトの名無しさん
NGNGmakeとかinstallを使う権限がないのでは。
0588デフォルトの名無しさん
NGNG>「権限が無い」って、 root の権限が無いんじゃなくて、
>「勝手に他所のソフトをコンパイルしちゃいけません」ってこと?
ルートの権限です。
>SDL なら ./configure --prefix=$HOME/local とかすれば
>自分の権限で入れられるはずだけど。
展開したときのサイズは大きくないですか?
100メガもあったら少しきついてす(一人に割り当てられているハードディスク容量はそんなに大きくないので)。
0589デフォルトの名無しさん
NGNGただ下請ライブラリがあれこれ必要。
gnome環境らしいからライブラリほとんどはあると思うけど、
ヘッダは微妙。
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNG#include <〜.h>
と書いたときにインクルードされないような気が・・・
そこは、
#include "/usr/・・・/〜.h"
とか書き直すしかないんでしょうか?
0592デフォルトの名無しさん
NGNGgccなら-Iオプションでも使えばいい。
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNGCFLAGS = -Wall -g -O2 `$HOME/local/bin/sdl-config --cflags`
LDLIBS = `$HOME/local/bin/sdl-config --libs`
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGパフォーマンスどのくらい必要かとかにもよるんじゃなかろうか。
Kylixとかなら一行もコード書かなくてもbmpぐらい表示できそうだとか。
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNGこれさえあれば、あとは何でもいけるだろ。
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGそんなのあるのか?
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNG>ようは、bmpデコードライブラリなんだよ。
鼻くそほじりながら書けよ。
デコードもへったくれもそのままビットマップが詰まってる。
0604デフォルトの名無しさん
NGNGあんまし見た事無いけど。
0605デフォルトの名無しさん
NGNG展開したら500Mになりやがった
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGfb使えばできるんじゃ無いかい?
0608デフォルトの名無しさん
NGNGSVGAlib
http://www.svgalib.org/
0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNGハァ?幻覚でも見てんじゃねぇの?
0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNGあれはfb。
/usr/src/linux-*/drivers/video/logo/Kconfig
config LOGO
bool "Bootup logo"
depends on FB || SGI_NEWPORT_CONSOLE
0613デフォルトの名無しさん
NGNGwhich target_cmd
のステータスを取ろうかなと思うのですが、
popen("which target_cmd > /dev/null 2>&1", "w");
だと、which 自体は当然正常に実行できるのでうまくいきません。
どうすればよいのやら?
それとも他によい方法があるでしょうか?
0614デフォルトの名無しさん
NGNGなんで popen() を使うの?
0615 ◆Z0vd5w812U
NGNG環境変数PATHを分解してUNIXコマンドをstrcatしてfstat。
0616デフォルトの名無しさん
NGNGaccess()ではだめなのか?
0617デフォルトの名無しさん
NGNG流れ的にはこんな感じになるのかな?
getenv("PATH")
strtok(path, ":")
opendir
readdirで片っ端から調べる。
探しているなまえがあればstat
S_ISREGで調べて、access又はstatのパーミッションを調べる。
whichと同じにしたいなら見つかれば戻る。
見つからなければstrtok(NULL, ":")で最初から…。
0618デフォルトの名無しさん
NGNG一つだけきいていい?
なんで第二引数を"w"にしてるの?"r"じゃなくて。
0619 ◆Z0vd5w812U
NGNGopendirしなくても、ディレクトリパスに目的のコマンドをstrcatして
fstatかaccessでファイルの存在や実行可能状態を調べればよいよ。
0620デフォルトの名無しさん
NGNGsystem("which target_cmd > /dev/null 2>&1") で戻り値見ればいいと思うが...。
0621デフォルトの名無しさん
NGNGそれだと存在するかどうかはわかるけど、実行できるかどうかはわからない。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNGはぁ ?
which は、実効属性ぐらいは当然見てるんだが。
まさか、ファイルの中身まで見ろとか言ってるんじゃないよな。
0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNG/home/toru # touch /sbin/ahoka.txt
/home/toru # chmod 666 /sbin/ahoka.txt
/home/toru # which ahoka.txt
/sbin/ahoka.txt
/home/toru #
0628つまり実装による
NGNG$ which ahodaro.d
$ echo $?
1
$ sudo touch /usr/local/bin/ahodaro.txt
$ which ahodaro.txt
$ echo $?
1
$ which test
/usr/bin/test
$ echo $?
0
$ sudo rm -rf /usr/local/bin/ahodaro.*
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNGファイルをopenしてfstat()で検査してエラーだった場合、
そのファイルディスクリプターをcloseすべきでしょうか?
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNG例えばどんな?
0639デフォルトの名無しさん
NGNGなんて書いてないんだからcloseしろ
0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNGなんで二つあるの?
0642デフォルトの名無しさん
NGNGファイルポインタはCの入出力ライブラリ.
0643デフォルトの名無しさん
NGNGなんでディスクリプタなんていうものがあるの?
0644デフォルトの名無しさん
NGNG残念。そうとは限らない。
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGfdに対応したFILEを作成する関数ってナニ?どんな場合に失敗するの?
0647デフォルトの名無しさん
NGNG既存のshellのソースを読むとか.
0648デフォルトの名無しさん
NGNGfork(2), execve(2)
wait3(2), exit(3)
を使って引数を実行するプログラムを。
$ ./a.out ls -l
で、ls -lを実行するプログラム。
open(2), close(2)
を使ってredirectを実現。
pipe(2), dup2(2)
を使ってpipeを実現。
0649デフォルトの名無しさん
NGNGfdopen(3)
逆に FILE * -> file descripor なら fileno(3)
詳細はman参照。
0650デフォルトの名無しさん
NGNGリダイレクトとな?
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNGfilenoした後って、始末どうすんの?
fclose呼ぶの?
0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNGもちろん。
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNGあのヘッダを自分の環境に合わせて直すだけでも貴重な経験になるはず。
0658デフォルトの名無しさん
NGNGいいですか?
苦し紛れにstdout = fopen(ttyname(1), "w");
とかしてみたんですけど、printf()系は復活しましたがcoutは閉じたまま
でした。
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGどうって、決まりに沿って書くだけだが。
0663659
NGNGその決まりがわからないのですが,
その決まりはどこを見たらわかるのか教えていただけませぬか?
0664デフォルトの名無しさん
NGNGdup2
0665デフォルトの名無しさん
NGNGプラグインを作りたいソフトの資料はないの?
0666659
NGNGすんません. 言葉の使い方間違ってたようで.
プラグインの呼び出し側をつくりたいのです.
0667デフォルトの名無しさん
NGNGもう少しやりたい事をはっきりと書いて欲しいものだが
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/dlopen.3.html
のような事?
0668デフォルトの名無しさん
NGNGAPIの設計
0669デフォルトの名無しさん
NGNGこんな感じですか?↓
string tty = ttyname(1);
fclose(stdout);
dup2(1, open(tty.c_str(), O_WRONLY));
駄目でした...
0670659
NGNGすんません...
ソフトをリコンパイルすることなく,
入力ファイルに書いてある関数を呼び出したい.
その時, そのソフトで定義していない関数も呼び出せるようにしたい.
... で伝わりますでしょうか.
0671デフォルトの名無しさん
NGNGクローズ前にdup2
0673デフォルトの名無しさん
NGNGお前は細胞分裂からやりなおせ
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG二度とくるなよ(^-^)/~
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNGstdoutやcoutとして使っているものを、close(1)しちゃいかん!
0680428ツ?ツ?
NGNG下のようにしてみました。
int fd = dup(1);
cout << "show (before close)" << endl;
close(1);
cout << "not shown" << endl;
dup2(fd, 1);
cout << "show (cout)" << endl;
printf("show (printf)\n");
結果は
show (before close)
show (printf)
coutが復活してない模様です...
0681デフォルトの名無しさん
NGNG> coutが復活してない模様です...
それは、きっと、
> cout << "not shown" << endl;
のせいだよ。コメントアウトしろ。
しかし、動いても実装依存で、close(1)しちゃいかん!
0682679
NGNGそれからclose(1)する前にflushくらいしろよ。
しかし、close(1)しちゃいかん!
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNGcursesを使ったプログラムをX Window上のktermとかで動かしたいのですが、
端末の行カラム(ウィンドウサイズ)が動的にされたタイミングを捕まえることは
できるでしょうか? それに合わせて表示を変更できたらなぁ、と思ってます。
その方法を教えてくださいませ。お願いします。
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNGなるほど、そういうシグナルが来るわけですな。
ためしてみます。サンキュー
0689デフォルトの名無しさん
NGNGやりたいのはpipe(2)+fork(2)を使って
親の出力 → パイプ → 子の入力
と繋ぎ、しかる後に子が先に死ぬんで
親の出力 → 画面
と戻したいのです
dup2(パイプの片方, 1);
とやる過程で中でclose(1)されてるので、それを復活させたいと
いうのが発端です。
0690679
NGNG0691デフォルトの名無しさん
NGNG親が叩くとあるライブラリが、デバッグログ相当のものを標準出力
に吐いています。そのライブラリは非公開です
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG1.子は標準入力の捕捉と共有メモリへの書き出しのみを担当させたい
2.子はライブラリの使用箇所が終わり次第消したい
3.親のみが知りえる情報とログを加工してmainの最後に出力したい
という理由で子が吐くというのはやりたくないです
0694デフォルトの名無しさん
NGNGP.S.
実装依存のコードでも良ければ、環境を書け。
0695693
NGNGCygwin 1.5.9 & g++ 3.3.1
です
0696デフォルトの名無しさん
NGNGdup しとけばいいじゃん。
0697デフォルトの名無しさん
NGNG0698693
NGNGあ、ほんとだ!!
でもなぜ?
0699679
NGNGcout.fail() => trueになるに決ってんでしょ。
cout.clear()してみなよ。
つーか実装依存のコード書くのはまだ早いかも…
もっとiostream勉強しる
0700693
NGNG仰せの通りfail()がtrue返し、clear()したら表示されるようになりました
failなんてフラグを持ってる事すら知りませんでした
勉強になりました
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNGじゃあなんでGIMPはMDIじゃないの?
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG知らなかった。どうでもいいけど。
0707デフォルトの名無しさん
NGNGMDIだと使いにくいからでしょ。
0708デフォルトの名無しさん
NGNGそうか?
0709デフォルトの名無しさん
NGNG二つの関数をつかってマップするところが、
UNIXではmmap関数一回で済んでしまいます。
これはどうしてなんでしょうか?
0710デフォルトの名無しさん
NGNGくだらん事言うな
0711デフォルトの名無しさん
NGNG無いじゃないかと叫んでる893だな
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGProcessA : CreateFileMapping("hoge") → MapViewOfFile
ProcessB : OpenFileMapping("hoge") → MapViewOfFile
とすることで(msyncを呼ばなくても)、内容が同期される。
つまり、共有メモリのように振舞う。
というか、win32では共有メモリはこの方法を使う。
いわゆるmmapだけでこれを実現することはできない。
・・・と思う(違ったら指摘してくだせえ)
同期が不要であれば、プロセスごとにCreateFileMappingを行えばよい。
これはmmapと同等となる。
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG> いわゆるmmapだけでこれを実現することはできない。
> ・・・と思う(違ったら指摘してくだせえ)
見事に間違ってる。MAP_SHAREDつけるだけでいい。
> 複数のプロセスで同一のファイルに対するマップを作るとき、
> ProcessA : CreateFileMapping("hoge") → MapViewOfFile
> ProcessB : OpenFileMapping("hoge") → MapViewOfFile
プロセスによって手順が違うのかいな。めんどくさ。
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG> 見事に間違ってる。MAP_SHAREDつけるだけでいい。
ダウト!
2つのプロセスで試してみ。mmapだけじゃできんから。
0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG> とすることで(msyncを呼ばなくても)、内容が同期される。
へえー
0720デフォルトの名無しさん
NGNGmmap だけで同じことができるかどうかわからんな。
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNGお前藻な。
0723デフォルトの名無しさん
NGNG試してみたら、ちゃんとmmapだけで同期したんですけど。
OSの実装を考えたら同一メモリページを複数のプロセスにマップするだけなんだから、
同期しない理由がないと思うけど。
0724デフォルトの名無しさん
NGNGmsync(2)はflushだから、MAP_PRIVATEの時しか意味ないだろ。
0725デフォルトの名無しさん
NGNGマルチプロセッサ環境なら CPU のキャッシュの関係で msync が必要になるかもね、ということ。
0726デフォルトの名無しさん
NGNGその領域自体は複数のプロセスで共有すると書いてあるな。
0727デフォルトの名無しさん
NGNGメモリにマップされてる領域自体は共有されてるから、
プロセスが別だろうとなんだろうとその場で変更が見える。
でもそれは元ファイルには書き出されてないかもしれないから、
元ファイルの内容を更新するにはmsyncが必要。
みたいな。
0728デフォルトの名無しさん
NGNG> うちのマニュアルには
釣りでないなら、uname -aくらい書けよ。
0729デフォルトの名無しさん
NGNG> ファイルをマップしたとき、
> メモリにマップされてる領域自体は共有されてるから、
mmapのman pageをそのように記述しているOSがあるなら教えてほしい。
0730デフォルトの名無しさん
NGNGLinux localhost 2.4.27 #2 Sun Aug 8 23:07:42 JST 2004 i686 unknown
MAP_SHARED このマッピングを、このオブジェクトをマップし た
他 の全てのプロセスと共有する。この領域への保存
は、ファイルへの書き込みと等価である。 た だ し
ファ イルが実際に更新されるのは、 msync(2) また
は munmap(2) が呼ばれたときである。
あとこっちにもhttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/mmap.2.html
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG> MAP_SHARED このマッピングを、このオブジェクトをマップした
> 他の全てのプロセスと共有する。
mappingを共有するんだから、メモリ空間も共有だわな。
> この領域への保存
> は、ファイルへの書き込みと等価である。
単一仮想記憶だからmmap(2)すれば当たり前だわな。
> ただし
> ファイルが実際に更新されるのは、 msync(2) また
> は munmap(2) が呼ばれたときである。
これはプロセス間のメモリ共有とは何の関係もないわな。
diskにflushしようがしまいが、共有メモリは共有メモリだからね。
それを理解してない。
0733デフォルトの名無しさん
NGNG最初からそう言っているじゃない。
0734デフォルトの名無しさん
NGNG取得するようにプログラム書いてる方います?
そうれってなんのメリットがあるんでしょうか?
typedef {
void *ptr
int attribute1;
int attribute2;
}HANDLE
HANDLE CreateObjFoo()
{
ObjFoo *foo_prt;
foo_ptr=(Obj_Foo *)malloc(sizeof(ObjFoo));
HANDLE hnd;
hnd.ptr=foo_ptr;
hnd.attribute1=attribute1;
hnd.attribute2=attribute2;
return hnd;
}
0735デフォルトの名無しさん
NGNG2)物理メモリ
3)DISK
msyncは1から2への更新のついでに、同期で2から3へも行うという理解でいいのかな
MAP_SHAREDしたときは、1から2への更新が重要というだけで
>>732
>単一仮想記憶だからmmap(2)すれば当たり前だわな。
単一仮想記憶ってなんでしょうか?
0736デフォルトの名無しさん
NGNG具体的なコードを出してくれないと。そんなあやふやなのではねー。
適当な事をいうと、そういう類のことしてるのは
リファレンスカウントなりGCなりのメモリ管理が絡んでいる場合が多いと思う。
あと複数の種類のオブジェクトを同じHANDLEで扱いたい場合。
0737デフォルトの名無しさん
NGNG> 1)CPUCache
> 2)物理メモリ
> 3)DISK
>
> msyncは1から2への更新のついでに、同期で2から3へも行うという理解でいいのかな
> MAP_SHAREDしたときは、1から2への更新が重要というだけで
少なくともSMPやccNUMAじゃ1と2の間の一貫性もアーキテクチャで保証されるん
だけどね。そうじゃないNUMAでOSの側でも手を打たないUNIXってどれですかね。
第一それが問題になるなら話はmmapに限らないし。
2から3もOSがいきなり落ちたりしない限り、ユーザから見れば即時にディスク
に書き込まれるのと変わらない。
書き出しはOSがページングと同じ枠組みで自動的にやってくれる。
>>730のマニュアルの訳者はそれを理解してないね。原文はもっとましな書き方
がしてある。
0738デフォルトの名無しさん
NGNGよく考えてみればそうですね。
異なるCPUで動いてるスレッドのデータ領域の話だってそうか。
全然関係ない話になるけど、
>SMPやccNUMAじゃ1と2の間の一貫性もアーキテクチャで保証される
保証されてないアーキテクチャってあるんでしょうか。ソフト側で
Cacheのフラッシュを実行しないといけないようなCPU。
0739デフォルトの名無しさん
NGNG制御しなくてはならないようなアーキテクチャがあるのかと思ったまでです。
むかしなんかで読んだMachのメモリマネージャの記事で、個々のCPUごとに、
専用のメモリとアドレス空間を持っているハードに対応するような話を読みました。
現在のNUMAのように単一のアドレス空間の共有を前提とするのが当たり前の
時代からみると、かなりキモイ設計のようにも見えますが。CPU間の
データ転送には特別な命令を用いる感じなんでしょうか。よく分りませんが。
VMにその頃の名残があって、>>725の記述がそれを繁栄したものだというのなら理解できます。
0740デフォルトの名無しさん
NGNGCPUが別のCPUに割り込めるものもあるらしい。
あるいは、問題が起こりうるデータには
初めからキャッシュを使わないという解決法もある。
UNIXカーネル内部解析という本がくわしい。
http://www.amazon.co.jp/exec/obidos/ASIN/4890529306
カーネルの解説本と見せかけて、一冊まるごとキャッシュに関する解説をしている。
0741デフォルトの名無しさん
NGNGコード晒してみ。
0742デフォルトの名無しさん
NGNGその本、なんだか良さそうな感じですね。
今度注文してみます。
0743デフォルトの名無しさん
NGNGむしろ同期しない方のコードを晒してもらいたい。
0744デフォルトの名無しさん
NGNGそれUNIX固有の話じゃないんじゃないの?
FILEに付いて考えてみれ
0745デフォルトの名無しさん
NGNG#include<sys/types.h>
#include<stdio.h>
#include<sys/mman.h>
#include<unistd.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<wait.h>
int main()
{
int fd, pid;
void * p_map;
fd = open("/tmp/mmap.txt",O_RDWR|O_CREAT|O_SYNC);
pid = fork();
if(pid==0){ /*child*/
p_map = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
printf("child p_map == %d\n",(int)p_map);
//memcpy(p_map,"aaaa",4);
*(int *)p_map=4;
}
else if (pid>0){ /*parent*/
p_map = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
printf("parent p_map == %d\n",(int)p_map);
wait(NULL);
printf("mmap %d\n",*(int *)p_map);
}
close(fd);
}
0746デフォルトの名無しさん
NGNGどうせこういうことだろうという見当はつくが。
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNGむしろ終了直前にわざわざcloseしていることのほうが。
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG親プロセスの最初のprintfが子プロセスでの書き込みより先に実行されることを
仮定しちゃってると思うんだが、どうよ。
0752デフォルトの名無しさん
NGNGmmapではファイルサイズ分しか読み書きできないようです。それとも何か
勘違いしてるのかもしれませんが。あと/tmp/mmap.txtのアクセスモード指定が抜けてました。
#include<sys/types.h>
#include<stdio.h>
#include<sys/mman.h>
#include<unistd.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<wait.h>
int main()
{
int fd, pid;
void * p_map;
fd = open("/tmp/mmap.txt",O_RDWR|O_CREAT|O_SYNC, S_IRWXU);
write(fd,"aaaaaa",6);
//lseek(fd,6,SEEK_SET);
pid = fork();
if(pid==0){ /*child*/
p_map = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
printf("child p_map == 0x%X\n",(int)p_map);
*(int *)p_map=4;
}
else if (pid>0){ /*parent*/
p_map = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
printf("parent p_map == 0x%X\n",(int)p_map);
wait(NULL);
printf("mmap %X\n",*(int *)p_map);
}
close(fd);
}
0753デフォルトの名無しさん
NGNG判別できないとするなら、何が間違っているのでしょうか。
childプロセスが終了した時点で当然、mmap領域のダーティーなページの内容は
当然ディスクに書き戻されているはずですが、そのことがparentプロセスが
そのページを参照することとはなんの関係もないですよね?
0754デフォルトの名無しさん
NGNGFile systemに反映させたかったらmsync(2)使え。
それからmmap(2)のonline documentをちゃんと読め。
0755デフォルトの名無しさん
NGNGここは
write(fd,"aaaaaa",1); /*OK*/
write(fd,"aaaaaa",0); /*Bus Error*/
となりました。mmapというよりはファイル操作に関する基本的な
事柄のようです。O_CREATを指定して開いただけでは、ディスクリプタ
だけが作成されて、VFS(?)に対する繁栄はされないということでしょうか。
また、実際に書き換えるmmap領域よりファイルサイズが小さいと、ファイルには
繁栄されませんでした。OSはLinux-2.6.8.1 glibc-2.3.3です。
>>754
ひとまずmsyncの話は保留にして、mmapでプロセス間通信ができないという
人がいたので、素人なりにそれができると示すためのコードを書いてみただけです。
コードが間違っていて、いるのかどうかを聞いています。
上のボログラムはmsyncは呼んでませんが、ファイルには繁栄されます。
嫁というのは分ってますので、みんなが納得できるコードを示してください。
0756デフォルトの名無しさん
NGNGお前こそちゃんと前のレスを読め。msyncなぞ使わんでも反映されるわ。
0757754
NGNGLinux-2.6.8.1でi386なら、MAP_AUTOGROWは実装されてないでしょ。
> 上のボログラムはmsyncは呼んでませんが、ファイルには繁栄されます。
参照しているprocessがなくなったら必ず反映されるわな。VMの仕事だもんな。
0758デフォルトの名無しさん
NGNG> mmapでプロセス間通信ができないという人がいたので、
馬鹿は無視しる
0759デフォルトの名無しさん
NGNG>繁栄されませんでした。
これは嘘でした。勘違いもいいところ。もう少し調べてから出なおしてきます。
>>757
それは逆に言えば
・ページのリファレンスカウントがゼロなったとき
・msyncが呼び出されたとき
以外はファイルシステムには繁栄されないということでしょいうか?
まあこれこそ嫁ってやつか。
0760デフォルトの名無しさん
NGNG> mmapでプロセス間通信ができないという人がいたので、
誰のこと?
0761デフォルトの名無しさん
NGNG>>717とか>>741
0762デフォルトの名無しさん
NGNGだからmsyncなぞ普通はいりませんってば。mmapしてるプロセスの実行中に
別のプロセスがそのファイルをopen/readで読んでも、ちゃんとmmapページに書
かれた内容が読まれます。あんた試してものを言いなよ。
でもってファイルサイズを越えた領域に書かれたものがファイルに反映されない
のはmmapの仕様です。msyncがどうのこうのという話ではありません。
0763デフォルトの名無しさん
NGNG納得
0764デフォルトの名無しさん
NGNG>>757はたぶん>>717や>>741と同類(もしくは同一)なので、
相手するだけ無駄です。デンパは放置すれ。
0765753
NGNG754=757さんは、ディスクに書き出されるタイミングを指摘しただけなので、
言ってることはあってると思います。私はmmapにつかっていたページの
参照カウントの増減があるたびにファイルに繁栄しているものだと思ってましたが、
実際はそうではなく、ページの参照カウントがゼロ、またはmsyncが呼び出されたとき、
または、何らかのバッファフラッシュ操作によるものというのが754氏の主張。
これは多分正しいでしょう。
0766デフォルトの名無しさん
NGNGだって別にプロセスに結びつけられて管理されている資源じゃなくて、
OSがキャッシュと仮想記憶の一貫としてやってるわけだから。
ま、Linuxに限れば正しいのかも知れないが。
あなた、適当にそれっぽいことを鵜飲みにしないで、ちゃんと物事を
調べる癖つけた方がいいよ。
0767デフォルトの名無しさん
NGNG失礼。
0768デフォルトの名無しさん
NGNGあんまり意味はなさそうですが、一応別プロセスということでシェルから
catでファイルを見ましたが、何度やっても/tmp/mmap.txtに繁栄されていました。
よく考えてみるとこれが実際にディスクに書き出された結果なのか、
それともpage cacheをただ読んでるだけなのかは判別できないですね。下のFigure2を見ても分るように。
http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/full_papers/silvers/silvers_html/
どうやって確かめるんだろ。
0769デフォルトの名無しさん
NGNG{
int fd, pid;
void * p_map;
fd = open("/tmp/mmap.txt",O_RDWR|O_CREAT|O_ASYNC, S_IRWXU);
write(fd,"aaaaa",6);
pid = fork();
if(pid==0){ /*child*/
p_map = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
close(fd);
printf("child p_map == 0x%X\n",(int)p_map);
memcpy(p_map,"bbb",3);
munmap(p_map,4);
}
else if (pid>0){ /*parent*/
p_map = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
close(fd);
printf("parent p_map == 0x%X\n",(int)p_map);
wait(NULL);
printf("mmap %s\n",p_map);
sleep(30); /* ここでmmap.txtの内容を確認 */
munmap(p_map,4);
unlink("/tmp/mmap.txt");
}
}
0770デフォルトの名無しさん
NGNGsleepするところですばやく電源抜くとか
0771デフォルトの名無しさん
NGNG暇なんて試してみました。linux-2.4.28-pre3,glibc-2.3.3のマシンです。
ファイルはbbbaaという内容に更新されていました。このあたりはOSごとの
実装の違いが大きい話の気がしますので他の環境では当てになりません。
mmapのような複雑な機能を提供する関数の詳細まで調べるのはくどいんで
この話題終わりにします。みなさんどうも。
0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNGお前を筆頭にな。
0774デフォルトの名無しさん
NGNG>>773みたいなバカはほっといて真面目に議論したいところ
0775デフォルトの名無しさん
NGNG同一ファイルを、別々にopenしてmmapした場合の挙動ってどうなんでしょ
というか、fork()だと同一fdだから同期されて当然?
0776デフォルトの名無しさん
NGNG黙れカス
0777デフォルトの名無しさん
NGNGmmapされるのはその同じメモリだろうから自動的に同期されて
見えそうな気がする。
0778デフォルトの名無しさん
NGNG想像で語るな
0779デフォルトの名無しさん
NGNG[プロセステーブル項目]->[ファイルテーブル]->[vノードテーブル]のうち
fork直後に頭二つの項目を共有しているかどうかはmmapには何の関係もないようです。
int main()
{
int fd, pid;
void * p_map;
fd = open("/tmp/mmap.txt",O_RDWR|O_CREAT|O_ASYNC, S_IRWXU);
write(fd,"aaaaa",6);close(fd);
pid = fork();
if(pid==0){ /*child*/
fd = open("/tmp/mmap.txt",O_RDWR|O_CREAT|O_ASYNC, S_IRWXU);
p_map = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
close(fd);
printf("child p_map == 0x%X\n",(int)p_map);
memcpy(p_map,"bbb",3);
munmap(p_map,4);
}
else if (pid>0){ /*parent*/
fd = open("/tmp/mmap.txt",O_RDWR|O_CREAT|O_ASYNC, S_IRWXU);
p_map = mmap(NULL,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
close(fd);
printf("parent p_map == 0x%X\n",(int)p_map);
wait(NULL);
printf("mmap %s\n",p_map);
sleep(30); /* ここでファイル内容を確認 */
munmap(p_map,4);
unlink("/tmp/mmap.txt");
}
}
0780デフォルトの名無しさん
NGNGならないなら、WindowsのようにCreateFileMappingのような関数が
あったほうがスマートな感じがしませんか?
論理的なファイル(FS)、マッピング対象オブジェクト、実際のビュー
と三つの観点で綺麗に分けることができる。
0781デフォルトの名無しさん
NGNG適応すべきだったかと。その方が分りやすい。
論理的なファイルに対するハンドルで、いきなり読み書きするのは変。
0782デフォルトの名無しさん
NGNGスマートだと思うよ。
a)デバイスをシステムのメモリ空間に割り付ける
b)システムのメモリ空間をプロセスのメモリ空間からみえるようにする
a)とb)が明確に分かれていれば、
a)の結果の共有→b)した複数プロセスからの見え方の同期
が素直に理解できるし、>>775のような悩みを持たずにすむ。
abを一緒くたにしちゃってるのは変。
0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGUNIXの影響下にあるOSとの互換性を意識して作られたものなのかなって
気がしてきました。
ディスクキャッシュも最終的にはpage cacheとして一元管理されているのなら
Mapして操作することとなんら違いはないはず。
ところでUNIXにおいてmmapでファイルの読み書きするのと、read/writeとでは
パフォーマンスに違いはあるんでしょうか?どこかによいベンチの結果とか
ありますか?
0786デフォルトの名無しさん
NGNGなぜならread/writeではカーネル空間→ユーザ空間、またはその逆の
メモリコピーが発生するから、ずっとコストが高い。
0787デフォルトの名無しさん
NGNG# Sunが作ってUI軍団に配布した奴ね。
mmap(2)で実装されていた。遅かった。
まあ、VMの実装によっても違うと思うが、
mmap(2)ではmemoryをたくさん食ってしまうから遅い、
buffering I/Oでは、processのmemory消費量が少なく、
disk I/Oがうまくinterleaveされるって事だったと思う。
今時の単一仮想記憶だと>>786なのかなあ。
Linuxはそうなんじゃないかと思うが、
FreeBSDなんかはdisk I/Oを特別に扱ってないですか?
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNGYOUはSHOCK世代だから。
0790デフォルトの名無しさん
NGNG変数名や関数名にローマ字多用するのが特徴です
0791デフォルトの名無しさん
NGNGhttp://www.itmedia.co.jp/enterprise/articles/0409/14/news030.html
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG> 当然mmapの方が早い。
> なぜならread/writeではカーネル空間→ユーザ空間、またはその逆の
> メモリコピーが発生するから、ずっとコストが高い。
いや、必ずしもそうとは限らない。
mmapではメモリコピーの代わりにページフォールトが発生することになるが
こいつのコストが(特に最近のプロセッサでは)馬鹿にならない。
一方、メモリコピーの場合、コピー元データがL1キャッシュに載っていたりすると
コストが圧倒的に小さくなるから、メモリコピーの回数とパフォーマンスは
必ずしも反比例するわけではない。
てことで、以下のメールのように、条件によってはmmapよりread/writeの方が
速くなることもある。
ttp://lists.freebsd.org/mailman/htdig/freebsd-current/2004-June/029521.html
0797デフォルトの名無しさん
NGNG思っていたけど、うーん。
IO-boundとCPU-boundで変わってくるのか。
キャッシュが効いてくるという話なら、バッファの大きさでも変わりそう。
MADV_SEQUENTIALはmanを読むと先行するページを早くページアウトするようにす
るという後ろ向きの最適化だけど、ページフォルトを減らすべく一度に複数ペー
ジをまとめてページインするようにはできないものだろうか。今の話を素直に解
釈すると、これで何か不都合がなければそれなりに効果がありそうに思うのだが。
0798デフォルトの名無しさん
NGNGCPUのページ単位で区切って、論理的にメモリに割り当てるんでしょうか?
もしそうなら、mmapするときはページ境界を意識して使う必要がありますよね。
というか、page cache一元管理を前提と考えるなら、ファイル構造やユーザー
データなどありとあらゆるデータが、ページ境界を意識すべきということなのかな?
mmap,read/writeの話は結局どういった使い方をするのかっていうのにかかってる
ような。mmapを使うなら、極力フォルトの発生しないようにするのは、ユーザー側で
意識することだろうし。read/writeに関してはカーネルがページフォルトを
抑えるよう、特別にバッファリングしてくれるのかもしれないけど。
ちなみに関係ないですが、インテルのCPUには4MB単位、つまりページディレクトリだけの
ページング方式があったように思いますが、あれじゃWindowsやUNIXといったOSは
(プロセス間通信をmmapで一元管理するのはMach由来なんでしたっけ)
まともに動きそうにないですね。どうなんでしょう。
0799デフォルトの名無しさん
NGNGここいらでそろそろ真面目にソースを読んでおくべきということか。
0800デフォルトの名無しさん
NGNG> もしそうなら、mmapするときはページ境界を意識して使う必要がありますよね。
$ man mmap
0801デフォルトの名無しさん
NGNG>ファイルはページサイズの整数倍の領域にマップされる。
>サイズがページサイズの整数倍でないファイルの場合、
>マップ時に残りの領域は 0 で埋められ、.......
1) マップの単位はページ境界に整列
2) ファイルも0byte目からページ単位に区切って、それぞれページ境界にぴったりとそろえる。
という二つの意味にとっていいんでしょうか。1は当たり前のことですが。
straceによりlibc(i386)がマップされる様子を見てみると
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200^\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1243888, ...}) = 0
old_mmap(NULL, 1254052, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001d000
old_mmap(0x40145000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x127000) = 0x40145000
一つ目のmmapでlibcのファイル全体を、0x4001d000から1254052
(0x1322a4≒0x133000=307ページ)バイト分マップ
二つ目のmmapでおそらく.data領域となるであろう部分をPROT_WRITE,MAP_PRIVATEを指定して、
0x40145000(一つ目のマップ領域中の296ページ目、ファイル中の0x127000=295ページ目。
一つずれているのはなぜだろう?)から32768(0x8000=8ページ)バイト分マップ
という理解であってますか?これなどを見るとファイルの先頭は一応、
ページ境界に一致させてるように見えます。しかし、、リンカはあんまりページ境界を
意識してELFファイルを構成してるようには見えないですね。ヘッダのような実行時に
不要なデータは、ページ境界を意識するならどこか一つにまとめておくべきでしょうね。
ところで、二つ目のmmapは一つ目のものを上書きしてるように見えます。
ページ境界にはもちろん整列してますけど。こういうのもありなんですかね。
0802デフォルトの名無しさん
NGNGリンカの問題というよりは規格自体の話ですね。訂正。
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG何言ってっか全然分かんないや
0805デフォルトの名無しさん
NGNGお尋ねしても宜しいでしょうか? UTF-8 locale 関係です。お願いします。
0806デフォルトの名無しさん
NGNGごちゃごちゃ言ってないでさっさと質問しろ
0807デフォルトの名無しさん
NGNGつーかmanが貧弱すぎ
MSDNみたいなのが欲しい
もちろんサンプル付きで
0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNG(前置き)
Fedora Core 向けに、自作ソフトを UTF-8 対応しました。ところが、
動作が eucJP locale に比べて激しく遅いのです。で、何に時間を
食っているのか調べたら、XCreateFontSetでした。0.02 sec くらい
だったのが、3 sec くらいかかっています。
(で、質問です)
font load を早くするにはどうしたら良いのでしょうか?
見た感じでは、大量のfontをloadしているのではないかと思います。
できれば、iso10646-1 の font 一個のみで済ますようにしたいの
ですが…。
宜しくお願いします。
0810デフォルトの名無しさん
NGNG何せ,古いインターフェースだもんでな。
0811デフォルトの名無しさん
NGNG$ cat ~/.xserverrc
-deferglyphs all
0812809
NGNG>> 810 さん。ちょっと覗いてみましたが、すぐには理解できなかったので、
勉強してから試してみます。
>> 811 さん。試してみました。効きました。時間は半分になりました。
今のところ、
・Font 指定の曖昧性を減らした。(3sec -> 1sec)
・server option に -deferglyphs を設定した。(1sec -> 0.5sec)
さらに、ですが、xterm は iso10646-1 のフォントのみで表示できている
ので、これも参考にしてみたいと思っています。
0813デフォルトの名無しさん
NGNG保守もされてないし
これでプログラミングしようとする奴の気が知れないよね
0814デフォルトの名無しさん
NGNGscript kiddyのくせに何を言う。
0815デフォルトの名無しさん
NGNGquiche eaterのくせに何を言う。
0816デフォルトの名無しさん
NGNG大丈夫か?
0817デフォルトの名無しさん
NGNGなにが?
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNGもはや図星を点かれて何も言い返せないな・・・。
全くその通りですが何か?
個人的にUNIXは人を不幸にするOSだと思う。
さっさと死滅してくれると業界も少し平和になるんだが。
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNGWinSockの理不尽なバグや意図角プロセスのリソースリークがシステム全体のダメージになったりするのはプログラマを幸せにしますか?
0825デフォルトの名無しさん
NGNG定期的に再インストールしないとパフォーマンスが落ちたり
不安定になったりするようなOSは、ものすごい欠陥品だよねぇ。
みんなよく使ってるよなあ。
なんてことをうぃんどーずから書き込んでみる。
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGやっぱおかしくなるし
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGコストの差だね。
原因調べるよりも、まず再起動した方が安い場合も多いよ。
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG>>830のいうようにコストの面からしてアホらしくなってるしな
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG・使い方がアホだからこそおかしくなる。これが根本原因
・お仕着せのままで満足してしまうので再インストールがコストが低いと思ってる
・アホだから原因を調べられないのにコスト比較のふりをして現実から逃避
→そんなあなたにピッタリなのは……おせっかい設定てんこもりのVine Linux
お仕着せをありがたがって使いましょう、好みと違っても文句禁止、質問は犬板で。
まちがってもLinux板から出てきちゃだめ
頭のいい人:
・理解して使ってればそもそも変な使い方しないからそうそうおかしくならない
・インストール後様々なカスタマイズやコンピュータにさせる仕事の設定を行う
ので再インストールのコストは低くない
・おかしくならないから長いこと使う、自然カスタマイズも進む
→そんなあなたは*BSDでもSolarisでもお好みでどうぞ、どれでも大丈夫
0837デフォルトの名無しさん
NGNGWindowsだって、システモの情報がある程度まで公開されていれば
再インストールなんて必要ない。ただWindowsは複雑だから面倒くさそう。
プログラミングに関係ない話題はよそでお願いします
0838デフォルトの名無しさん
NGNGまあ再インストールでいいんでねえの?
バックアップもM$のクソOSに比べれば簡単なんだし。
なんでこんなに拒絶反応があるのか理解に苦しむ。
0839デフォルトの名無しさん
NGNGのせいだったとわかった時には。。。 _| ̄|○
0840デフォルトの名無しさん
NGNG問題が内在していないのはいつの分までかを簡単に調べられたら
バックアップのリストアでもいいけど、普通はわざわざそんなこと
せずに動いてるシステムで原因を修正しておしまい。
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNGはたまにあるな。なにしろ動いてるものなんで、ゆっくり原因解析してる暇は無い。
0843デフォルトの名無しさん
NGNG0844820
NGNG釣りのつもりはありませんでした
ごめんなさい
やっぱUNIXは不幸なOSなのか
みんな苦労してそうだな〜
0845デフォルトの名無しさん
NGNGファイルの一つ一つのpermissionもチェックし、
書き換わらないようなファイルの置き場と、
よく書き換わるファイルの置き場を区別するものだ。
・・・とか言い出しそうでキモい
0846デフォルトの名無しさん
NGNGほっとけよ。
0847デフォルトの名無しさん
NGNGおまえらまとめてよそでやれ。
0848デフォルトの名無しさん
NGNGえ? まともな管理者ならファイルのパーミッションはチェックしていて当然だろ。
*BSDだとかいくつかのLinuxのdistributionだとsetuidされたファイルの
変更をcronでチェックするようになってるし、マルチユーザ環境なら
だれでも書けるファイルやディレクトリはじめパーミッションの確認は必須だろ。
Windowsと違ってデフォルトが安全サイドだから要注意対象はたかが知れてる。
後半に至っては/varの存在意義を否定してるな。
>>844
言葉が抜けてる。
UNIXは「バカにとっては」不幸なOSかも知れない
「おバカの仲間は」みんな苦労してそうだな〜
0849デフォルトの名無しさん
NGNGOSそのものが分らなかったんだよ。それをUNIXが古臭いということに摩り替えて
ごまかす。多分そういう奴はWindowsのことも大して分ってない気がするけどね。
0850デフォルトの名無しさん
NGNGファイル一つ一つについてサイズパーミッションと変更時刻を読み上げて
資料と照らし合わせるってのは実際にやるよ。
0851デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNGマジキモ
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNGわしも。
仕事が組み込み系だし。
割とありがちでないの?
0858デフォルトの名無しさん
NGNGおれも勉強するぞ!
0859デフォルトの名無しさん
NGNG俺に恨みでもあるのか。それとも人をからかうのが好きなのか。
どちらにしても、お前は悪意をもって人を傷つけようとした。
こういう事はこれで最後にしろ。
0860デフォルトの名無しさん
NGNG流行っちゃうよそんなにあちこち貼ったら。
書いたひとはどっちかっていうと被害者なのに。
0861デフォルトの名無しさん
NGNG東京都新宿区西新宿2-3-15大山ビル2F
55ソフトシステムズ
配信停止の場合の返信先 [email protected]
配信停止は24時間後に反映されます。
当配信は送信に関する特定商表示義務規定に則り送信しています。
------------------------------------------------------------
以下のビジネスソフトを激安販売します
・Windows 系 Os Office 等 全て 6割〜8割 引
・Adobe 系 Os Photoshop 等 全て 8割〜9割 引
・CADソフト 及び ビジネスソフト 全て 6割〜9割 引
その他 合計280種類のビジネスソフトがあります。
サポート付きですので納得安心価格です。
郵便代引きで 即日急送します
くわしくは
http://www.55soft.net/
をご覧ください
== 55Soft.net は、ビジネスソフトの安売り王です ==
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGUNIXの頭のいいやつなら
サイズパーミッションと変更時刻も変更せずに、プログラムを
書き換えることもできるだろ
0864句読点書けないバカをサマージャンボする俺 ◆9NQzQ21lx.
NGNG0865デフォルトの名無しさん
NGNGいつまで夏のつもりだ池沼
0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNG通常不可能。
root権限を奪えば可能性はありますが、それでも
例えばFreeBSDではその可能性のある操作を禁止できます。
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNGint uname(struct utsname *name);
0875デフォルトの名無しさん
NGNGヴァカ?
0876デフォルトの名無しさん
NGNGunameをPOSIXが定めていることを知らないで暴れてる>>872もバカ。
0877デフォルトの名無しさん
NGNGconfig.guessとか。中を覗くといろいろやってるね。
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG得したメモリは開放されない」と言っている先輩がいます。これは本当ですか?
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGfree on exit fj でぐぐればたぶん出てくるよ。
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG資源管理がいい加減なOSならリークするでしょう。
どちらにせよ、
「プロセス中で確保したもんは必ず手動で閉じなされ。」
と言うのは肝に銘じてた方がいいっす。
0884デフォルトの名無しさん
NGNGどちらにせよ、
「mallocしてfreeしないと云々。」
というのを耳にしたら一目散に逃げるべしと言うのは肝に銘じてた方がいいっす。
0885デフォルトの名無しさん
NGNG悲しいバグを組み込む率が上がりそうだ。
0886デフォルトの名無しさん
NGNGプロセスも終了時にリソースの解放をしてくれる。
ただし自分で明示的に解放を指示になければならない
ケースも存在しないわけではないので
大切なのは盲目的教条主義に陥らずに
その都度最適な方法を判断することだ。
0887デフォルトの名無しさん
NGNG香ばしいねえ
とはいえ、unixerたるもの、OSから借りた資源はしっかり返すものだな。
これをわかってないド素人がunixerを気取ってるのは、正直イタい。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNGいや、ファイルとかセマフォとか。<資源
GCのある言語はデストラクタの実行タイミングが曖昧なのでスマートポインタのような使い方はお勧めしない。
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG>その都度最適な方法を判断することだ。
解放しないのが適切な場合ってどんなの?
移植性は下がるしヒューマンエラーの温床となるし、良い所ってぱっと思いつかないんだけど。
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGイチイチfreeしてまわるよりはexitしてもらったほうが
ソフトウェア製造コストとしては安いかもね
それを最適と呼ぶかどうかは状況によるなあ
0894デフォルトの名無しさん
NGNGOSが適切に処理してくれるのに、わざわざ自分で処理を書いたほうが
ヒューマンエラーの元になることがわからないのか。
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGいやすでにfj.comp.lang.cになってたか
今更食いついてる香具師って何者?
この話題に関わっても無知蒙昧をさらすだけよ、いろんな意味で。
すでに1000000辺ぐらい繰り返された論争の、低レベル縮小ミニマム再生産版
見せられて喜ぶ奴なんていやしないんだから。
0897デフォルトの名無しさん
NGNG輪廻転生
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNG0900879
NGNG釣りのつもりはありませんでした
ごめんなさい
やっぱUNIXは不幸なOSなのか
みんな苦労してそうだな〜
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNGリソースリークが即死を意味するようなWindowsよりかは幸せです。
0903デフォルトの名無しさん
NGNGはぁ?
0904デフォルトの名無しさん
NGNG犬糞や海栗糞が窓叩く場合Win98以前をターゲットにするのがマナーなんだよ。
0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNGそれがWin2kだったりするから質が悪いんだと。
まぁ、俺のプログラムの質が悪かったと言えばそれまでだが。
某プラントシステムがぐらぐらになったよ。
0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNG前世紀の遺物であるfj.comp.lang.cを楯に思考停止に陥るのは
いかがなものかと言ってるわけさ。
0909デフォルトの名無しさん
NGNGそう言われても俺の糞プログラムにはmallocはあってもfreeはない。
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNGネイティブな言語が減ってきて暮らしにくい世の中になったなと。
豊富な資源がアル前提でRADするには最高の環境なんだけどね。
0912デフォルトの名無しさん
NGNG盾にって言われても、fjでの議論の結論知らないんだけど
どっちが勝ったんだっけ?
0913デフォルトの名無しさん
NGNGそんなことはどうでもいいんだよ。
いったんリセットして僕たちは0から話し合うべきなんだ。
0914デフォルトの名無しさん
NGNG自分でOS作って俺環境こそが唯一正しいと
主張するならある程度の妥当性はあるだろうけど。
0915デフォルトの名無しさん
NGNG正解。
昔と今では状況も違えば常識も違う。
ムーアの法則が未だに有効であることからも状況が少なからず変わっていることがおわかり頂けるだろう。
0916デフォルトの名無しさん
NGNGはなししってなんですか。
0917デフォルトの名無しさん
NGNGlinuzの性格がもう少し悪ければ・・・と言う話ですね?
0918デフォルトの名無しさん
NGNG> GCのある言語はデストラクタの実行タイミングが曖昧なので
みんなJava風なわけではない。
0919デフォルトの名無しさん
NGNGfjや2chの議論に結論はない。まとめがある場合はある。
free on exitはまとめがあったはず。
0920デフォルトの名無しさん
NGNGリソース=メモリってわけじゃないし
0921デフォルトの名無しさん
NGNG明示的に開放しないと問題のあるリソースならともかく
0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG俺はホントに最初の頃の議論しか見てないが、印象としては
UNIX系のマトモなHosted Environmentを主に使ってる人→
そんなのカーネルにまかせろや。free()しないと回収できないような
システムなら、killもできないってこったぜ
仮想メモリ管理をちゃんとやってるOSでfree on exitなんざアホの極み
主に組み込み系エンジニア、またはWin16あたりのクソOSユーザだった人→
回収しろったらしろ。
な感じと記憶しているが、確実にいえるのは「必要な場合ならやれ」。それだけなら
当たり前で、そこに移植性やらコーディングスタイルやら思想やらの問題を
持ち出す香具師がいるから宗教戦争になる。
ただ、業務系では意外に頭固い人多いんだよね。free on exitをしないのは
だらしが無いとか何とか。「それが適切か」ではなく、「そもそもそういう
スタイルが許せない」人が多い。
0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNGatexitに登録した関数内で開放するということでFA?
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNGいつ安定するんだか。
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNGいつ安定するんだか。
0943デフォルトの名無しさん
NGNGいつ安定するんだか。
0944デフォルトの名無しさん
NGNGいつ仕事するんだか。
0945デフォルトの名無しさん
NGNGいつ安定するんだか。
0946デフォルトの名無しさん
NGNGいつ発射するんだか。
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG俺と(ry
0949デフォルトの名無しさん
NGNG2000年頃のやつなら
http://groups.google.co.jp/groups?hl=ja&lr=&ie=UTF-8&inlang=ja&c2coff=1&selm=95cjf3%24il3%241%40news.tut.ac.jp
これが結論でいいと思う
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNGまたfree不要論者は最大何人月、何行くらいのプロジェクトでfreeを省きましたか?
0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG全く意味不明なのだが。
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG何か意味あるの?
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNGプロセスの実行中に何度も実行され、ワーキングセットを着実に増加させて
いくような性質ではないmalloc()なら、わざわざfree()してないプログラムは
多いだろう。
典型的なのが、初期化処理内でのmalloc()ね。
0959デフォルトの名無しさん
NGNG必要じゃないfreeをやらなくていいって話
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG禿同。
みんな引きオタの実績0の脳内理論に釣られすぎだよ。
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGならexitするだけで済ましちゃうな。楽だし(笑)
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNGあーあ。non portableなプログラムを書いてしまったね。
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGそもそもスタイルを云々することの必要性が皆無なプログラムの場合
好きにしろと言うことだよ。
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG実装のUNIXにはどういうものがあるか教えてください。
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG今もどこかで動き続けているに違いない。
void *foo()
{
static void *buf;
if(!buf) buf = malloc(...);
...
return buf;
}
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG次スレ乙
0984デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG書くだけか(藁
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG>主に組み込み系エンジニア、またはWin16あたりのクソOSユーザだった人→
Win16でもfreeいらないでしょ。
0989デフォルトの名無しさん
NGNGOSに頼るのはセーフティネットとして でいいじゃん
0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNGボケた老人みたいですね
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG実際頭の回らなくなってきたロートルがごねてるだけだしな。
0994デフォルトの名無しさん
NGNGOS に頼らないでプログラムを組むのは(特に Unix の場合)難しいと思うけど。
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNGUNIXって意味不明な名前のコマンドだらけで嫌気が差した
いいからメニューから全機能選べるようにしろよ
イミフメコマンド文化なんか続けてるから一向に普及しないんだよ
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG以下テンプレ
-------------------------------------------------------------------
UNIXプログラミング質問すれ Part4
-------------------------------------------------------------------
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド
前スレ
Part3 http://pc5.2ch.net/test/read.cgi/tech/1085930894/
Part2 http://pc5.2ch.net/test/read.cgi/tech/1055110889/
Part1 http://pc2.2ch.net/tech/kako/992/992057422.html
>>2-20 関連スレ
-------------------------------------------------------------------
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。