1 名前:970 [2006/05/18(木) 18:56:16 ] UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド 前スレ Part7 pc8.2ch.net/test/read.cgi/tech/1127373405/ 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
261 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:48:44 ] >>256 そこの UNIX 系統図は酷いな。 ここ(www.levenez.com/unix/ )までしろとは言わんけどさ、 もうちょっと、ねぇ。
262 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 00:55:44 ] >>261 耐えられないほどひどいのなら、書き換えていいんですよ。
263 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 01:12:33 ] >>262 貧乏人を見るのが小金持ちの楽しみなのさ。
264 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 01:29:44 ] >>261 の関係図はGraphvizを使ってるのかな
265 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 14:25:44 ] >263 悪趣味……
266 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 23:59:52 ] 宗教の勧誘は最高に素敵な趣味だよな。
267 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 21:26:23 ] 詳解UNIXプログラミングで勉強してます なかなか難しいっす
268 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 05:06:48 ] なんかUNIXのdaemonてマルチプロセスが多いみたいだけどなんででしょう? 全部マルチスレッドでやったらいいと思うんですけど
269 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 09:51:42 ] スレッドが簡単に使えるようになる前からあるコードが多いから。
270 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 12:35:49 ] ・ひとりがこけたらみなこけた、にならないように ・再起動しやすいように
271 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 21:48:34 ] >>270 スレッド間グローバル変数みたいなアホなテクが使えないので結果的にコードがすっきりする。
272 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:35:06 ] そんなの全部後付けの理由だろ。 本当の理由は>>269 の言うように Unixにまともなスレッドが実装されたのがかなり後だから。 で、それまでの資産(書籍やサンプル等も含めて)が多数あり マルチプロセス向きの機能や性能が常に強化の目標になっていたからさ。
273 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:39:06 ] >>271 ?
274 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:40:47 ] >>272 ?
275 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:49:41 ] >>273 ?
276 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:53:49 ] >>274 ?
277 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 23:59:54 ] >>275 ?
278 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 00:16:18 ] まともでポータブルなスレッドの実装なんて、今でもあるのかどうかw
279 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 00:19:06 ] 商用Unixであれば、ポータブルなんて考えなくていいから
280 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 00:44:17 ] そういうのでスレッドが利きそうなのは、スレッド化されてるんじゃないの? nfsがらみとかさ。
281 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 20:21:13 ] スレッドってエンドユーザが扱いにくいだろ プロセスなら扱いやすい。 エンドユーザのことを考えろよ
282 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 21:10:46 ] UNIXのエンドユーザーなんて大規模サーバの管理者だったりするわけで 多少の扱いやすさより効率うpの方がうれしいと思うけど
283 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 22:18:22 ] >>281 子プロセス一個殺せたところで嬉しくも何ともない。
284 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 22:19:48 ] >>283 シグナルを気軽に送れるところに意味がある。
285 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 22:24:33 ] >>268 マルチスレッドでやったらいいと思うのは、具体的にはどのdaemonのこと?
286 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 22:42:04 ] >>285 init
287 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 22:57:02 ] 犬板にお引き取りください
288 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 23:18:27 ] >>284 つprocess group つPOSIX 1003.1b
289 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 00:46:29 ] >>288 何が言いたいの?
290 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 01:07:58 ] BIND はマルチスレッドじゃなかったっけ? >>268 歴史的な理由:スレッドが普及する前から UNIX は存在したとか、古い OS でも動かしたいとか 実装的な理由:移植性が必要とか、デバッグし辛いとか、排他が面倒とか 管理上の理由:スレッド単位で kill 出来ないとか、プロセスの方が監視し易いとか 古い環境を無視出来るなら、もっとマルチスレッドにして良いと思うよ
291 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 01:16:33 ] configureまたはコンパイルオプションで、マルチプロセスかマルチスレッドを 選べる奴も増えてるよね。
292 名前:デフォルトの名無しさん mailto:sage [2006/08/23(水) 08:06:32 ] ほんとうに並列性が必要ならマルチプロセスだよね。マルチスレッドはお手軽だけど制限が多い
293 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 01:19:09 ] MPIとか
294 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 08:18:14 ] スーパー破瓜ーになりたいんですがどうすればいいですか?!!!!11!!
295 名前:デフォルトの名無しさん mailto:sage [2006/09/11(月) 23:40:06 ] >>294 大根でも突っ込んでしまえ。
296 名前:デフォルトの名無しさん [2006/09/12(火) 14:24:14 ] 共有メモリをマップ中に、万一、 プロセスが 9 番受けてデタッチできずに死んでしまっても、 また起動すれば共有メモリ自体はまた正しくマップできますか? 共有メモリ自体が残っていることは問題ないとします。
297 名前:デフォルトの名無しさん mailto:sage [2006/09/12(火) 14:27:29 ] mmapだよね? 出来ますよ。共有ファイルの権限が変わってない限り。 System V IPCの共有メモリも同様。
298 名前:296 mailto:sage [2006/09/12(火) 14:32:02 ] >>297 ありがとうございましたー!!
299 名前:デフォルトの名無しさん [2006/09/15(金) 19:08:21 ] おねがいします。 自分のファイル名(x.exe)を読み込んで xの部分がAすなわちA.exeだったらaを実行して xの部分がBすなわちB.exeだったらbを実行する っていうようなCのプログラムを教えてください。
300 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 19:54:46 ] 宿題は宿題スレで
301 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 20:32:44 ] UNIXなのに、A.exeなんて名前をつける香具師は死んでしまえ
302 名前:デフォルトの名無しさん [2006/09/15(金) 21:15:31 ] >>299 マルチ乙 35 名前: デフォルトの名無しさん 投稿日: 2006/09/15(金) 19:06:52 おねがいします。 自分のファイル名(x.exe)を読み込んで xの部分がAすなわちA.exeだったらaを実行して xの部分がBすなわちB.exeだったらbを実行する っていうようなCのプログラムを教えてください。
303 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 21:37:30 ] busyboxのソースが参考になるかと思うんだけど
304 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 21:58:35 ] ヒント argv[0] ヒント以上だな。
305 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 22:01:41 ] >>281 同意。 apacheで異常暴走したCGIをとめる時とか スレッドよりマルチプロセスのほうが 気軽にkillできるということで・・ スレッドのほうがコストが低いとかスティーブンス本には 書いて歩けど中身がスレッドで見た目マルチプロセス みたいな解はないもんかね。 スレッド単位でkillできる方法とかあれば topをカスタマイズするとか チャレンジしてみたいけどねーけどねー・・
306 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 22:53:13 ] >スレッド単位でkillできる方法とかあれば 共有してるコンテキストがボロカスになりそうだ。
307 名前:Motif?はぁ? mailto:sage [2006/09/15(金) 23:01:32 ] ぜっっっっっっっっってーウインドウ物のプログラムなんか書いてたまるか! て、思っていたが…書く羽目になりますた。orz もち〜ふの処女用教科書とか、ありましたら教えてくだしあ とりあえず今は、ここ↓で勉強中でし home.soka.ac.jp/~unemi/Motif/example.html
308 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 23:03:59 ] よりによって今からもちーふかよ。
309 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 23:32:02 ] >>307 茨の道にようこそ。今時のLinuxに載っているようなMotifはVer2になっているから ComboBoxやTabPageが使えたりして便利な反面、その辺りを説明している資料は殆どない罠。
310 名前:デフォルトの名無しさん mailto:sage [2006/09/15(金) 23:35:55 ] >>309 これからも訓練頑張って下さい。
311 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 11:25:27 ] >>309 私ゃ素人でアレなんでつが、あの、開発環境っぽい ぐれーど てえのは、皆さん普通に使いますか?
312 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 19:40:20 ] おそらくここにはXで何か作ってる人間はいないと思われ
313 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 22:07:52 ] >>312 かつて作ったが、今は(そのプロジェクトは終わっているので)作っていない。 >>311 私ゃ皆さんじゃないよ〜 >>310 何の訓練?
314 名前:デフォルトの名無しさん mailto:sage [2006/09/17(日) 00:23:18 ] ぐれーどというのがgladeのことなら、 それはGtk+というツールキットを使ったアプリのUI(ウィンドウ内の部品配置) 定義を対話的に作って、それをXMLで出力するもの。Motifには無縁の存在。
315 名前:デフォルトの名無しさん mailto:sage [2006/09/17(日) 00:30:41 ] >>314 そのXMLをパースしてmotifのウィジットを配置する関数を生成するジェネレータを作ればいい。 あなたは頭が固すぎる。
316 名前:デフォルトの名無しさん mailto:sage [2006/09/17(日) 02:11:51 ] >>315 仕事で似たようなことやってるが、不毛だぞ。
317 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 21:24:01 ] シェルのプログラムのBASHを使って、 九九の表を作成したいのですが、記述例を教えてください。 お願いします。 Whileとか使った方がいいようです。。。 できれば、説明もお願いします。
318 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 21:43:32 ] >>317 $ for n in `seq 9`; do for m in `seq 9`; do echo -n `expr $n '*' $m` ""; done; echo ;done man seq man expr
319 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 21:56:35 ] どーせ質問者Linux使ってるだろうからあるだろうけど、 seqって可搬性あるんだっけ? yes '' | cat -n | head -9 とか書けばいい?
320 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 22:13:45 ] そっか、可搬性か。bash限定だから s/`seq 9`/{1..9}/g かな?
321 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 07:58:39 ] # cat seq #! /bin/sh if [ $# -lt 1 ]; then echo missing operand 1>&2 exit 1 elif [ $# -gt 3 ]; then echo extra operand 1>&2 exit 1 elif [ $# -eq 1 ]; then FIRST=1 INC=1 LAST=$1 elif [ $# -eq 2 ]; then FIRST=$1 INC=1 LAST=$2 elif [ $# -eq 3 ]; then FIRST=$1 INC=$2 LAST=$3 fi n=$FIRST while [ "$n" -le "$LAST" ]; do echo "$n" n=`expr "$n" + "$INC"` done
322 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 21:07:18 ] 皆さん考えてくださってありがとうございます。 考えてくださっているのですが、 IFやFOR等は使っちゃだめみたいなんです。 記述は、 #!/bin/bash while [ ] do done のような記述のみでつくれっていわれてるんです。 whileは自動的に表示結果に改行が入ってしまいますよね? その改行をなくすにはどうしたらいいんでしょうか?
323 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 21:38:47 ] 宿題ですか。
324 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 22:00:28 ] $ n=1;while test $n -le 9; do m=1;while test $m -le 9; do echo -n `expr $n '*' $m` ""; m=`expr $m + 1`; done; echo; n=`expr $n + 1`; done echo -nを使う
325 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 22:07:03 ] 正直、宿題です orz
326 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 22:33:04 ] echo -nを使っている状態で、改行させるにはどうしたらいいですか?
327 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 23:03:53 ] echo -n "hoge" " " "hage"
328 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 10:16:53 ] >>326 -nを付けない。
329 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 10:50:33 ] \n
330 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 13:16:41 ] ありがとうございました。 無事、宿題を終えました。 色々と教えてくださった方々感謝します。
331 名前:デフォルトの名無しさん [2006/10/02(月) 23:08:27 ] だれか教えて。 Makefileで環境変数(PATH)を変更したいのです。 現在設定されているPATHの先頭に/aaaを追加するには どう記述すればよいですか
332 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 23:52:36 ] >>331 PATH=$(PATH):/aaa
333 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 23:55:44 ] PATH=/aaa:$PATH
334 名前:331 [2006/10/03(火) 00:18:02 ] ありがとう^^ 試してみます。
335 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 09:41:22 ] >>333 括弧つけろよ。
336 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 01:51:39 ] >>321 って何?
337 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 01:59:02 ] >>336 動かしてないけど、連続した数の列を吐くスクリプトだな。 その上にある質問(>>317 )への回答(>>318 )に出てきたGNUのseq(やBSDの jotだっけ?)は移植性がないので、スクリプトとして作ったわけ。 スクリプトのはじめの長いif文は引数の数によって、開始値・終了値・刻みを セットしている。(case $# in...のほうが見やすいかも)
338 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 16:02:10 ] esac だけはいまだに慣れない
339 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 16:12:40 ] caseだとこうか。 case $# in 1) FIRST=1; INC=1; LAST=$1;; 2) FIRST=$1; INC=1; LAST=$2;; 3) FIRST=$1; INC=$2; LAST=$3;; *) [ $# -lt 1 ] && echo missing operand 1>&2 [ $# -gt 3 ] && echo missing operand 1>&2 exit 1;; esac
340 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 10:21:44 ] マイナスになることはないので、0)と*)でいいのではないか?
341 名前:デフォルトの名無しさん [2006/10/08(日) 01:31:24 ] すみません、突然なんですけど 昨日プログラミングの講義で課題を出されて eのx乗を求めるプログラムを作れと言われて 困ってます。昨日からずっと考えてるんですが 全くわかりません。 どなたか教えてもらえませんか?
342 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 01:48:32 ] pow関数使ってもいいのか?
343 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 01:49:04 ] 昨日からずっと考えてるって… 何を、どんな知識をベースに考えてたんだ? 単純に、こういうことなんじゃないのか? www.google.co.jp/search?hl=ja&q=%22math.h%22+log&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
344 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 02:08:30 ] >>341 UNIX関係あるのか? math.h使わないとして普通に考えても 0乗なら 1 1条なら e x乗なら e^x をしたらいいだけじゃないのか?
345 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 02:16:04 ] xが整数とは限らないとちょっと面倒かも つか宿題スレ池
346 名前:デフォルトの名無しさん [2006/10/08(日) 02:22:40 ] >>344 LINUXでやってます。 プログラミングの知識が乏しくて プログラミングをかけないんです。 #include <math.h> double log(double x); って感じで書くんですけど・・・ その後がいまいちわからなくて・・・
347 名前:344 mailto:sage [2006/10/08(日) 02:27:22 ] >>346 入門書読め 乗算以前にC言語の構文が理解できてない
348 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 02:41:50 ] eが自然対数の底ならlog(x)じゃなくexp(x)でそのものずばりだろ。
349 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 03:13:13 ] exp(x)関数使わせるだけの演習なの?
350 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 03:16:42 ] 構文が理解できてないようだから、構文の勉強中じゃないの?
351 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 05:41:59 ] 金払ってまで勉強する領域で講義もろくに聞いてないとは。
352 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 06:06:21 ] 俺も思う。 金払って勉強してるのに、なぜ答えてくれるかどうかもわからない2chなんかで聞くのか。 金払ってるんだから講師にでも聞けよ
353 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 10:22:06 ] 勉強でも遊びでも、学生時代の経験ってのは大切だ。 市民権のある立場を買ってると考えればよい。
354 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 13:26:51 ] 留学生には市民権はないぞ。 市民権というのは、citizenshipの訳語で、 政治参加の権利を持っている人のことだぞ。 ギリシャのポリス市民から来ている。
355 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 17:01:33 ] >>354 どうでもいいよ。定義なんて。
356 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 17:07:05 ] >>355 どうでもいいよ。お前の意見なんて
357 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 17:11:18 ] >>356 じゃあわざわざwikipedia書くような労力払わんで下さいよ。
358 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 17:11:39 ] キミタチキモイヨ
359 名前:デフォルトの名無しさん [2006/10/09(月) 13:21:17 ] GCCとMakeの質問です。 Apacheモジュールからpostgresへつなげる処理を 作っているのですが、 Makeしたときに"closesocket"関数がpostgres.hとport.h内で再定義(redefined)された という警告が出力されます。 こういう場合、何か回避するよい方法がありますでしょうか? 今のところpostgres側のヘッダ(port.h)に #define closesocket pg_closesocket とかすればよいのだろうかと考えていますがどのような影響があるかわからず躊躇しています。 ・Make時のログ In file included from /usr/local/include/postgresql/server/c.h:822, from /usr/local/include/postgresql/server/postgres.h:48, from mod_blog.c:9: /usr/local/include/postgresql/server/port.h:273:1: warning: "closesocket" redefi ned In file included from /usr/local/include/apache/httpd.h:29, from mod_blog.c:2: /usr/local/include/apache/ap_config.h:1084:1: warning: this is the location of t he previous definition ・ソースファイル(ヘッダ部) #include <string.h> #include "httpd.h" #include "http_config.h" #include "http_protocol.h" #include "ap_config.h" #include "http_log.h" #include "libapreq/apache_request.h" #include <postgres.h> #include <libpq-fe.h> <略>
360 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 13:22:35 ] 警告出したくないだけなら/dev/nullにパイプしろ
361 名前:359 [2006/10/09(月) 13:29:00 ] 訂正です。 X Makeしたときに"closesocket"関数がpostgres.hとport.h内で再定義(redefined)された ○ Makeしたときに"closesocket"関数がap_config.hとport.h内で再定義(redefined)された >>360 いやそれだと意味が...;