UNIXプログラミング質問すれ Part10
1 :unco ◆manko/yek. :2011/04/18(月) 17:06:36.77 .net UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド 前スレ Part9 http://hibari.2ch.net/test/read.cgi/tech/1205795434/ Part8 http://pc11.2ch.net/test/read.cgi/tech/1147946176/ Part7 http://pc8.2ch.net/test/read.cgi/tech/1127373405/ Part6 http://pc8.2ch.net/test/read.cgi/tech/1116908090/ Part5 http://pc8.2ch.net/test/read.cgi/tech/1105723117/ Part4 http://pc5.2ch.net/test/read.cgi/tech/1095843584/ 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 Part3のミラー http://makimo.to/2ch/pc5_tech/1085/1085930894.html Part2のミラー http://makimo.to/2ch/pc5_tech/1055/1055110889.html
2 :デフォルトの名無しさん :2011/04/19(火) 17:01:07.44 .net 2
3 : 忍法帖【Lv=11,xxxPT】 :2011/04/19(火) 19:17:34.89 .net CPU使用率を取得する方法を教えてください。
4 :デフォルトの名無しさん :2011/04/20(水) 02:18:25.36 .net >>3 Solaris なら kstat を使う http://alexeremin.blogspot.com/2009_02_01_archive.html
5 : 忍法帖【Lv=11,xxxPT】 :2011/04/20(水) 04:09:18.29 .net >>4 早速の回答ありがとうございます。 Linuxの場合はどうすればよいのでしょうか?
6 :デフォルトの名無しさん :2011/04/20(水) 13:43:31.57 .net >>5 /proc/stat
7 :デフォルトの名無しさん :2011/04/25(月) 00:26:08.55 .net cursesで文字列でないワイド文字を1文字出力する関数を教えてください
8 :デフォルトの名無しさん :2011/04/25(月) 00:38:35.81 .net unix板にも、linux板にも、同じスレが有るんだな これが
9 :デフォルトの名無しさん :2011/04/25(月) 12:19:13.04 .net >>7 ncursesのmanpageのncurseswの項目を読んでください。
10 : 忍法帖【Lv=16,xxxPT】 :2011/04/27(水) 17:45:17.96 .net >>6 早速の返信ありがとうございます。 そのファイルを読み込むと言うことでしょうか? ファイルを開く操作は重い操作なので、できれば何か関数で取得できるとよいのですが
11 :デフォルトの名無しさん :2011/04/28(木) 01:20:58.11 .net お前が読め
12 :デフォルトの名無しさん :2011/05/04(水) 02:32:26.37 .net XLibを使ったプログラムを作ってるんだけど、 RootWindowでルートの画面を取得して縦横のサイズを見ると、 0になるんですが、スクリーンのサイズを取得する方法を教えて下さい。
13 :デフォルトの名無しさん :2011/05/04(水) 02:58:50.47 .net 取得できました。
14 :デフォルトの名無しさん :2011/05/04(水) 17:26:56.21 .net どうやって?
15 :デフォルトの名無しさん :2011/05/05(木) 02:52:29.69 .net >>14 該当箇所を消してしまったので、覚えてませんが、XGetWindowAttributes の引数にルートを渡すと、スクリーンのサイズが取得出来ました。 ところで、リモートのXにログインする方法を教えて下さい。 VNCモドキを作ってるのですが、そもそもXの認証を行う方法が分かりません。。
16 :デフォルトの名無しさん :2011/05/06(金) 12:55:34.62 .net xauth関連のコード読んで。 ただ独自接続管理ならsshのX forwardingを参考にしたほうがいいかもしれないが。
17 :デフォルトの名無しさん :2011/05/09(月) 20:23:31.51 .net >>16 XCBのソースを見ると書いてありますね。
18 :デフォルトの名無しさん :2011/05/11(水) 09:22:26.52 .net コマンドラインプログラムでタイマーを使って割り込み処理をする方法はありませんか?
19 :デフォルトの名無しさん :2011/05/11(水) 10:03:30.90 .net コマンドラインでプログラムできるシェルっていうと、N-BASICとかそっち方面ですかね。 UNIXには無いけど、インタラクティブなLL使えば出来るんじゃないかな。
20 :デフォルトの名無しさん :2011/05/11(水) 12:40:49.47 .net >>18 ? タイマーの関数自体、guiとかcuiとか関係ないと思うんだが
21 :デフォルトの名無しさん :2011/05/11(水) 17:36:07.11 .net alarm(3)
22 :デフォルトの名無しさん :2011/05/12(木) 22:29:01.57 .net libeventはやってるみたいだけど libevとかもあるよね? 結局 select,poll,epoll,libent,libevどれがいいの? でやっぱりサーバとしては、マルチスレッド使うよりいいわけ?
23 :デフォルトの名無しさん :2011/05/12(木) 22:45:58.40 .net 今どきシングルコアしか使えないサーバプログラムなんて寂しいから、 シングルスレッドにするなら、クラスタリングの仕組みを用意して 負荷分散する等の余計な手間が必要になる様な・・・ 一方、マルチスレッドで作っておけば、スレッド間のデータの受け渡しも 簡単だし、コンテクストスイッチも軽いし、プロセスの管理も簡単。 C の標準ライブラリにマルチスレッドの関数が入る時代だしね。 ただマルチプロセス前提なら、ノードを跨いだスケールアップを 狙えるのはメリットかも。
24 :デフォルトの名無しさん :2011/05/12(木) 23:17:46.96 .net >>23 ちょ、ちょっとまって。マルチスレッドを気に入ってるみたいだけど ちょっとおまえのスキルを確認させて。 C10K問題のテキスト(英文でも訳文でもいいから)読んでみた? 最近(でもないか。)mixiがおちたmemcashedのとらぶる知ってる? あ、そもそもmemcashedのlibeventのトラブルはしってる? libeventとかのベンチマークテストとかやってみてるの? スティーブンスンは読んだことあるよね? 「オンラインゲームを支える技術」は読んだ?あそこにかいてある内容はどう思う?
25 :デフォルトの名無しさん :2011/05/12(木) 23:25:56.05 .net >>24 何だか一行目から勘違いしてるみたいだけど、マジレスした方が良いの?
26 :デフォルトの名無しさん :2011/05/12(木) 23:49:30.80 .net >>23 > 一方、マルチスレッドで作っておけば、(略) > コンテクストスイッチも軽いし、 pgr
27 :デフォルトの名無しさん :2011/05/12(木) 23:52:54.47 .net 自分の意見も言えないのに突撃してくるのは鬱陶しいから勘弁してくれ 君は議論してるつもりかもしれないけど・・・
28 :デフォルトの名無しさん :2011/05/13(金) 02:28:56.84 .net >>25 遅くなりました。マジレスお願いいたします。
29 :デフォルトの名無しさん :2011/05/13(金) 20:04:57.12 .net >>28 結局マルチコアマシンに対応しないといけないから、 ロードバランシングする方法を考えておくか、 最初からマルチスレッドで作っておくしかないよ という話なんだが・・・ >>22 が何のサーバを想定しているのか知らないけど、 例えばウェブサーバだとこんな感じかな? nginx : load balancing + worker thread lightty : multi process (http://redmine.lighttpd.net/wiki/1/Docs:MultiProcessor) node.js : no feature => 普通はロードバランサーを手前に置くよね 至極普通の話をしているだけなのに >>24 みたいな人が 湧いてくるのが理解出来んわ。C10K って何十年前から 言われてると思ってるんだろうね。。。
30 :デフォルトの名無しさん :2011/05/13(金) 22:13:45.61 .net >>29 c10問題は知ってる口調だけど原文は読んだのか? そこではマルチスレッドはもはやこの問題に対応できるように設計されてないとかいてあるだろうに。 そこでシングルスレッド、ノンブロッキング、イベントドリブンが今の潮流なんでしょ?
31 :デフォルトの名無しさん :2011/05/13(金) 22:19:05.81 .net そんな潮流はマルチコアプロセッサが登場する以前の話でしょ?
32 :デフォルトの名無しさん :2011/05/14(土) 00:36:46.15 .net >>31 http://smpl.seesaa.net/article/72182431.html
33 :デフォルトの名無しさん :2011/05/14(土) 00:41:49.31 .net >>32 それ、返事になってないし 結局、マルチコアとの相性については見なかった事にするか、マルチプロセスか マルチスレッドかロードバランサーか、選ぶしか無いんですよ それが今の潮流
34 :デフォルトの名無しさん :2011/05/14(土) 00:42:15.61 .net >>31 OSのマルチスレッドが一般化してからの一頃は1クライアントに1スレッドを 割り当てるサーバも多く書かれたが、C10Kの状況ではこのモデルは破綻する。大抵のOSは少なくとも以前はそのような非常に多数のスレッドを扱う状況を あまり想定していなかった
35 :デフォルトの名無しさん :2011/05/14(土) 00:45:16.07 .net 大抵の OS って Linux 2.2 とかだろ
36 :デフォルトの名無しさん :2011/05/14(土) 00:53:10.16 .net >>33 すごい自信だけど、実績があっていっている?それともお勉強しましたレベル。 実績があるならどんなサーバの実績でどのくらいのクライアントをさばいたか教えてください。
37 :デフォルトの名無しさん :2011/05/14(土) 00:53:53.81 .net >>36 you, go first.
38 :デフォルトの名無しさん :2011/05/14(土) 16:21:54.86 .net >>29 何も知らない人なんだなw
39 :デフォルトの名無しさん :2011/05/14(土) 17:42:16.31 .net かわいそうだからそっとしといてあげなよ
40 :デフォルトの名無しさん :2011/05/14(土) 17:42:54.82 .net かわいそうだからそっとしといてあげなよ
41 :デフォルトの名無しさん :2011/05/14(土) 19:38:50.22 .net 過疎スレあげ
42 :デフォルトの名無しさん :2011/05/15(日) 03:06:26.86 .net わんわん
43 :デフォルトの名無しさん :2011/05/15(日) 18:15:10.31 .net かわいそうだからそっとしといてあげなよ
44 :デフォルトの名無しさん :2011/05/18(水) 05:01:47.06 .net 計算が終了したら、Twitterに自動的にtweetするようにしたいのですが、一番簡単な方法を教えてください。
45 :デフォルトの名無しさん :2011/05/18(水) 07:18:45.84 .net 何故ここに…? TwitterだったらPHPとかPerlとかPythonとかRubyとかの いわゆるWeb系言語のスレとか、それかWebProg辺りになるんじゃないのか…?
46 :デフォルトの名無しさん :2011/05/18(水) 09:20:05.10 .net >>45 UNIX上で動作するアプリケーションが終了したときに、Webアプリケーションにポストしたいんでしょ。 適当にググったら、こんなのでてきたぞ。 http://bazaar.launchpad.net/~gabrielcain/twitter-cmdline/trunk/files
47 :デフォルトの名無しさん :2011/05/18(水) 09:22:55.10 .net つうか、 command line twitter client でググったらぞろぞろでてきたぞ。 http://www.google.co.jp/search?q=command+line+twitter+client
48 :デフォルトの名無しさん :2011/05/18(水) 11:42:13.18 .net >>46 ああ、そういうことか すまぬ>>45
49 :デフォルトの名無しさん :2011/05/19(木) 22:30:53.13 .net 大容量のファイルに対して、read()システムコール:ssize_t read(int fdesc, void *buf, size_t nbytes) をしてみた所、失敗してerrno=22(EINVAL)が返るのね。ちなみに、movファイルでサイズは7GBぐらい。 なんで失敗するのかご教授ください。
50 :デフォルトの名無しさん :2011/05/19(木) 22:38:59.90 .net どこの馬の骨かわからない奴に教授する気はない。
51 :デフォルトの名無しさん :2011/05/19(木) 23:49:56.04 .net そうだよな。どこのだれぐらい言わないとな
52 :デフォルトの名無しさん :2011/05/20(金) 01:26:59.39 .net >>49 教えて欲しければ、もう少し詳細に書けよ。 あと、man readくらいは読んだか?
53 :デフォルトの名無しさん :2011/05/20(金) 03:44:58.42 .net CPUの詳細情報は/proc/cpuで取得できますがGPUの詳細情報はどこで取得できるのでしょうか?
54 :デフォルトの名無しさん :2011/05/20(金) 06:45:35.26 .net popen/pclose系とシェルコマンドの連動(やりたいことは例えばls . | grep "hoge")で分かりやすいサイト(英語可)を教えてください。 言語は何でもいいですが、できればC言語ではなく、RubyやPythonで簡略化されたものがいいです。 ていうか、こういうCS以外の学科で教えなさそうな話は、本とかで勉強したほうがいいのでしょうか?
55 :デフォルトの名無しさん :2011/05/20(金) 09:21:56.15 .net >>49 引数渡し間違えてる。ファイルが大きすぎるとEFBIGになる。 >>53 /proc/cpuに相当する「詳細な」情報かどうかは分からないが、 /sys/devices/ の下でGPUの種類などは分かる。 lspci, lspci -nを参考にしてくれ。 >>54 http://docs.python.org/library/subprocess.html
56 :デフォルトの名無しさん :2011/05/29(日) 04:34:19.21 .net X Window Systemのアプリ作りたい gccで作れるの?
57 :デフォルトの名無しさん :2011/05/29(日) 09:25:04.48 .net gcc 以前に、そんなこと聞いてる奴には難しいと思う。
58 :デフォルトの名無しさん :2011/05/29(日) 14:01:16.83 .net >>56 作れるよ
59 :デフォルトの名無しさん :2011/05/30(月) 02:39:39.57 .net >>57-58 レスありがとう 作れるけど難しいのか やりがいがありそう
60 :デフォルトの名無しさん :2011/05/30(月) 09:37:06.71 .net どこまでも能天気な奴だ
61 :デフォルトの名無しさん :2011/05/30(月) 17:10:59.80 .net 最初から簡単に作れる奴なんか居ない 誰でもHello Worldからステップアップするもんだ
62 :デフォルトの名無しさん :2011/05/30(月) 18:08:03.00 .net gnome javascriptだとこんなかんじ http://git.gnome.org/browse/gjs/tree/examples/gtk.js
63 :デフォルトの名無しさん :2011/05/30(月) 19:48:16.75 .net 誰も聞いてない
64 :デフォルトの名無しさん :2011/05/30(月) 20:11:42.38 .net >>62 へー、Gtk+ に JavaScript バインディングなんてあったんだ 見た感じ簡単そうで良さげだね 知らんかった
65 :デフォルトの名無しさん :2011/05/30(月) 20:32:05.96 .net >>62 gjs より、seed のほうが Gnome 標準っぽい。
66 :デフォルトの名無しさん :2011/05/30(月) 21:13:05.41 .net 大して変わらない。まあ言語と元のAPIが同じだから当たり前だが。 http://git.gnome.org/browse/seed-examples/tree/gtktextview.js
67 :デフォルトの名無しさん :2011/06/09(木) 20:57:02.33 .net 今日ブ○クオフいったら93年発行のXウィンドウプログラミング1って本が800円で売ってたから買うか迷ったけど買わなかった ウィンドウマネージャの作り方とか載ってんのな 現状800円は高いお
68 :デフォルトの名無しさん :2011/06/10(金) 12:35:16.66 .net なんだブックオフか 伏せる意味あんのか馬鹿
69 :デフォルトの名無しさん :2011/06/10(金) 18:24:57.18 .net むしろこれは伏せてないw
70 :デフォルトの名無しさん :2011/06/10(金) 19:21:02.60 .net ubuntuとかエンドユーザ向けのlinux流行ってるとか言ってるわりにはunix向けアプリの作り方の本とか書店で全然見かけないな
71 :デフォルトの名無しさん :2011/06/10(金) 19:26:35.66 .net 要するに、パソコンといえばBASIC、時代からMS-DOS時代に移行したような、 プログラミングなんかしない「エンドユーザ」に流行ってる、ということなんじゃ。
72 :デフォルトの名無しさん :2011/06/10(金) 19:29:03.25 .net Linuxなどで開発する人は、自力で調べちゃうし。
73 :デフォルトの名無しさん :2011/06/11(土) 00:58:34.80 .net xdmみたいなログインマネージャ作ってみたい
74 :デフォルトの名無しさん :2011/06/11(土) 01:37:13.72 .net どうぞ。
75 :デフォルトの名無しさん :2011/06/11(土) 04:42:17.51 .net ぶ[F7+Enter]まる[Space+Enter]おふ[Space+Enter] マンドクセーw
76 :デフォルトの名無しさん :2011/06/14(火) 03:51:17.37 .net もしかしてJava使えばX用アプリ簡単に作れたりする?
77 :デフォルトの名無しさん :2011/06/14(火) 08:44:34.83 .net お前が簡単と感じるかどうかは別問題
78 :デフォルトの名無しさん :2011/06/14(火) 08:47:40.25 .net GUIアプリは作れる Xプロトコルのプログラミングをしたいならおすすめしない
79 :デフォルトの名無しさん :2011/06/14(火) 09:30:53.53 .net >>76 最近一番簡単だと思うのは、GNOMEのJavascriptバインディング。 gjsってやつ。
80 :デフォルトの名無しさん :2011/06/14(火) 10:29:55.35 .net cとgladeでおk。
81 :デフォルトの名無しさん :2011/06/28(火) 17:54:14.11 .net まったくの初心者です sygwinを使っているのですが VC++で作った.slnファイルをsygwin上で実行するにはどうすればいいんでしょうか? ちなみにプログラムにはMFCが使われています
82 :デフォルトの名無しさん :2011/06/28(火) 18:35:35.68 .net build.exe にパスを通す
83 :デフォルトの名無しさん :2011/07/07(木) 11:56:55.43 .net getopt() の、それ以上オプションが無いときの戻り値は何故 -1 なのでしょうか? '\0' をオプションにすることって、たぶん無い…ですよね
84 :デフォルトの名無しさん :2011/07/07(木) 12:11:51.13 .net 特別なケースは-1にすることがUNIXのAPIでは多いから。
85 :デフォルトの名無しさん :2011/07/07(木) 19:46:34.18 .net なるほど、他の関数と同じような仕様にしたんですね ありがとうございました
86 :デフォルトの名無しさん :2011/07/08(金) 00:01:43.31 .net getchar()のEOFと似たループになるよね。
87 :デフォルトの名無しさん :2011/07/08(金) 23:41:22.04 .net >>83 >'\0' をオプションにすることって、たぶん無い…ですよね 多分無いと思うけど、制限は可能な限り少ない方がいいと思ったんじゃね。 利用者は、極まれに開発者が思いもよらない使い方することあるから。
88 :デフォルトの名無しさん :2011/07/09(土) 08:27:12.31 .net cutみたいにオプションでデリミタとかセパレータを指定できるコマンドを考慮してるとか? 普通に"\0"を渡せばヌル文字で解釈してくれそうだけど。
89 :デフォルトの名無しさん :2011/07/09(土) 11:55:58.84 .net 確かに、そういったことも考慮すると使えるに越したことは無いかも知れないですね。参考になりました。
90 :デフォルトの名無しさん :2011/07/23(土) 19:36:04.77 .net SSHとかではなく、自分の作ったプログラムで認証したいんですが、 UNIXの認証の仕組み(何らかのシステムコールを呼ぶとか?)を教えて下さい
91 :デフォルトの名無しさん :2011/07/23(土) 20:02:15.87 .net authenticationとauthorizationのどっち?
92 :デフォルトの名無しさん :2011/07/23(土) 20:34:34.73 .net >>90 pamとnss
93 :デフォルトの名無しさん :2011/07/23(土) 21:47:55.56 .net キーボードってJISとUSどっちがいい?
94 :デフォルトの名無しさん :2011/07/23(土) 22:18:25.49 .net このみ
95 :デフォルトの名無しさん :2011/07/23(土) 23:02:31.00 .net >>92 ありがとう。
96 :デフォルトの名無しさん :2011/07/24(日) 04:26:40.76 .net >>93 自分にしっくり来るほう
97 :デフォルトの名無しさん :2011/08/09(火) 02:45:04.05 .net おいしいチャーシューの作り方を教えてください
98 :デフォルトの名無しさん :2011/08/09(火) 02:54:14.26 .net 1. 髪を伸ばしてオールバックにする 2. 裸になり黒パンを履く 3. 相手に喧嘩を売って自分からキレる
99 :デフォルトの名無しさん :2011/08/09(火) 05:00:48.53 .net http://www.youtube.com/watch?v=BNmQdvq58BA
100 :デフォルトの名無しさん :2011/08/18(木) 19:43:09.42 .net Makefileで a.h : b.h みたいなのが書いてあるんですが、 これって何なんでしょう?
101 :デフォルトの名無しさん :2011/08/19(金) 00:04:32.05 .net どっかで見た質問だったと思ったらここか
102 :デフォルトの名無しさん :2011/08/31(水) 15:59:35.10 .net >>100 a.h は b.h に依存している という意味です
103 :デフォルトの名無しさん :2011/09/17(土) 19:43:33.04 .net 起動してから一定時間実行したら終了するプログラムは どのように作るのが普通なんでしょうか? 実行する内容としては例えば1時間というパラメータを与えられて起動されたら その間ファイルを開いて読み取って閉じて次のファイルを読み取って という事を繰り返して1時間経ったら自ら終了する感じで。
104 :デフォルトの名無しさん :2011/09/17(土) 20:05:33.54 .net alarmしてSIGALRMのシグナルハンドリング。
105 :デフォルトの名無しさん :2011/09/17(土) 23:45:50.55 .net お手軽にループの中でtimeで現在時刻もらって指定時間時間経過したらそのループ抜けるとか
106 :デフォルトの名無しさん :2011/09/19(月) 02:40:53.70 .net unix初心者です。 リモートホストからローカルホストに戻るコマンドを教えてください。 ググってもわからなかったです。 プログラミング以前の問題で申し訳ないですが、 よろしくお願い致します。
107 :デフォルトの名無しさん :2011/09/19(月) 03:34:08.39 .net exit
108 :デフォルトの名無しさん :2011/09/19(月) 07:57:15.94 .net >>107 ありがとうございます。 助かりました。
109 :デフォルトの名無しさん :2011/09/19(月) 11:20:30.90 .net >>104-105 ありがとうございます。 結局その2つになってしまいますよね。 シグナルは確実に止まるけど1個しか使えないし、時刻を取得してというのはその間に実行する処理の量によっては時刻取得のオーバーヘッドがシャレにならんかったり指定した時刻からかなり遅れて終了したりとかありますよね?
110 :デフォルトの名無しさん :2011/09/19(月) 13:11:28.93 .net >>109 だから、(何にでも言えるが)汎用的な方法はない 対象に合わせて適切な方法を選ぶしかない
111 :デフォルトの名無しさん :2011/09/20(火) 12:17:05.97 .net >>109 外部からジョブを終了させるってことが、 システム、言語、環境に関わらず、 「本質的に」難しい仕事ってのは理解している? スレッドを外から終了させるようなAPIが 全く推奨されてないのと同じ理由なんだけど。
112 :デフォルトの名無しさん :2011/09/20(火) 22:07:30.83 .net >>109 オーバヘッドを気にするならタイマ用のスレッドを作りなされ。 1時間寝てから通知すればよいでしょ。FD でも cond でも。
113 :デフォルトの名無しさん :2011/09/21(水) 02:14:03.87 .net つまらんことを気にする場合、大体はどうでもいい事にこだわっていると思う RTOSじゃないしファイル読んでる時点で1sくらい普通にずれるべ
114 :デフォルトの名無しさん :2011/09/21(水) 19:04:06.30 .net 1時間経ったらがなんで1時間キッチリにせんといかんのだ?
115 :デフォルトの名無しさん :2011/09/21(水) 21:39:51.69 .net 109で >時刻を取得してというのはその間に実行する処理の量によっては >時刻取得のオーバーヘッドがシャレにならんかったり指定した時刻から >かなり遅れて終了したり とかゆってるからシビアな条件があるのだろう
116 :デフォルトの名無しさん :2011/09/22(木) 11:33:26.50 .net 後始末のないworkerなら強制的に止めてしまえばいいし、 後始末が煩雑ならworker側でyeildするのがいい。
117 :デフォルトの名無しさん :2011/09/24(土) 01:49:26.29 .net SIG_DFLの時の動作がプロセス停止になっているシグナル(SIGTSTPとか)が 時々止まらないことがあるのはなんでだべ?
118 :デフォルトの名無しさん :2011/09/24(土) 02:00:46.48 .net >時刻取得のオーバーヘッドがシャレにならんかったり ループの根元でやりゃ、負荷はバカにならんわな お手軽にやったけど、何か解決方法はないかという これ以上何も考えません的なところが素敵
119 :デフォルトの名無しさん :2011/09/24(土) 09:56:32.08 .net >>117 ブロックしている瞬間があるんじゃないの?
120 :デフォルトの名無しさん :2011/09/24(土) 12:24:20.07 .net >>110-118 ありがとうございます。 はい、現状は1時間を1本計れれば良いけど、それを1つのプロセスのままで複数の1時間を スタートの時刻が異なっても計れるようにするには初めからどのような作り方をするべきかとか 1時間をまたいで読み取り中だったデータは捨てるのか全部入れるのか1時間ちょうどの部分で 切るのかとか、ちょっと基本的な点でアレ?とか思っちゃったのでちょっと質問してみた感じでした。
121 :デフォルトの名無しさん :2011/09/24(土) 12:38:38.47 .net 最後の2行は新しい質問か?初耳だが、そんなのプログラムに要求されていることによるだろ。 どの挙動をすべきかなんて作ってる奴にしか分からん。
122 :デフォルトの名無しさん :2011/09/24(土) 13:05:38.56 .net 最初の2行はお礼では。
123 :デフォルトの名無しさん :2011/09/24(土) 14:44:30.30 .net 真ん中の二行は…てやかましいわ!
124 :デフォルトの名無しさん :2011/09/25(日) 02:55:22.61 .net wchar_tって使ってる人いる?
125 :デフォルトの名無しさん :2011/09/25(日) 19:21:08.09 .net canna以外で見たこと無いけど
126 :デフォルトの名無しさん :2011/09/25(日) 20:14:34.75 .net wchar_t をワッッチャァァァって発音したら、 職場の人間全員が ( ゚д゚) −> Σ( ゚д゚ ) になった どうも _t を発音しなかったのがまずかったみたい
127 :デフォルトの名無しさん :2011/09/25(日) 20:51:03.99 .net あー・・・ なるほど・・・ 大事なところだもんな・・・
128 :デフォルトの名無しさん :2011/09/25(日) 21:27:03.89 .net だぶちゃーてー(!ティー)だよな。
129 :デフォルトの名無しさん :2011/09/25(日) 21:46:54.79 .net だっちゃ
130 :デフォルトの名無しさん :2011/09/26(月) 00:00:03.88 .net たしかLinuxとかは一文字4byteなんだよねwchar_t。いやだなあ
131 :デフォルトの名無しさん :2011/09/26(月) 01:49:00.47 .net なにいってんのこの人。ダサい。
132 :デフォルトの名無しさん :2011/09/28(水) 03:14:27.91 .net >>124 C++ では std::wstring を使ってプログラムを書けば無問題、 そんなふうに考えていた時期が、俺にもありました。
133 :デフォルトの名無しさん :2011/09/28(水) 10:04:03.97 .net VC++だと問題ないけどね。Unix系だと罠がいろいろとありそうな・・
134 :デフォルトの名無しさん :2011/09/28(水) 12:02:22.35 .net >>133 いまどきUnix系でプログラムしてる人は少数派だろ
135 :デフォルトの名無しさん :2011/09/28(水) 12:11:37.58 .net それをこのスレで言うかwww
136 :デフォルトの名無しさん :2011/09/28(水) 15:43:47.23 .net 飛んで火に入る夏の虫 もう秋だぞ>>134
137 :デフォルトの名無しさん :2011/09/29(木) 11:43:22.93 .net AndroidやiOSはUNIX系かね? 古典的なAT&T由来のC APIではないけれど。
138 :デフォルトの名無しさん :2011/09/29(木) 12:00:16.75 .net 全ての作業をWindows上でおこなうのは少数派かな
139 :デフォルトの名無しさん :2011/09/29(木) 18:32:55.72 .net iOSはしらんけどAndroidはnix系だな
140 :67 :2011/10/04(火) 15:07:33.28 .net 今日行ったら200円になってたから思い切って買った
141 :67 :2011/10/08(土) 01:51:21.45 .net ちなみに書籍タイトル正確なのは Xアプリケーションプログラミング1 xlib編 92年発行の東工大の教授の本だ 19年も前の本だけど19年前から顔文字ってすでにあったのな 19年前って俺まだ小学校低学年だったからパソコンとかよく知らんかったけど X11R5が出たばっかのころのらしい、今のに使えんのかな
142 :デフォルトの名無しさん :2011/10/08(土) 06:03:00.48 .net >>141 これ? http://www.amazon.co.jp/dp/4883170225/ なつかしい。 自分は当時大学生で、大学で何百万もするUNIXワークステーションを使って サンプルとか打ち込んでたなあ。今なら安PC+Linuxでより快適にできる。 LAN経由で近くで作業している奴のディスプレイにイタズラの画面を出したり... 一般家庭はともかく大学にはインターネットの電子メールとかネットニュースとかが 既にあったし、顔文字とかAAも使われていた。www(草じゃないよ)が出てきた前後だな。 大学のマシンにサーバー立ち上げたっけ。エロのw 今ならマスコミ沙汰になって 退学処分か? Xのプログラミングから離れて久しいのでアレだが、Xlibはあんまり変わってないんじゃ? すなわち今でも使えるのでは。あえて今から低レベルなものを使ってプログラムを 書きたいのであれば...
143 :デフォルトの名無しさん :2011/10/08(土) 06:54:30.22 .net dwm, xmonadといったタイル型ウインドウマネージャや dmenu, dzenなどのシンプルなランチャの流行もあって 今でもXLibプログラミングは熱いですお
144 :デフォルトの名無しさん :2011/10/08(土) 08:18:56.56 .net >>143 そうなんだー。 今dwmのソースをダウンロードしてみたらソースファイルが一つだけ... こんなんでいいんだ。 サーバはXを使うとして、ウインドマネージャを自作するなんてのも面白そうだね。 ウィジェットとか言い始めると敷居が高いと思われるので...
145 :デフォルトの名無しさん :2011/10/08(土) 08:35:55.73 .net age
146 :デフォルトの名無しさん :2011/10/09(日) 01:44:52.52 .net この質問ここでいいのか分からないんだけど ↓のサイトのやりかたで、つまりcatコマンドからMakefileを作ろうとしたんだけど gccの前のTABが入力できなくってcshでやってたんだけどTABが入力できないのってシェルの問題? TAB入力できなくって変わりにスペース入れたらmakeがエラー出てググったらスペースじゃダメとか知らなかったよ flags for compiling Xlib.h in gcc http://www.linuxquestions.org/questions/programming-9/flags-for-compiling-xlib-h-in-gcc-333230/
147 :デフォルトの名無しさん :2011/10/09(日) 01:59:23.56 .net シェルスクリプト総合 その18 http://hibari.2ch.net/test/read.cgi/unix/1308195527/
148 :デフォルトの名無しさん :2011/10/09(日) 04:09:22.56 .net そのスレにcsh使いを誘導しないで欲しい cshのmanのヒアドキュメントを読む。echoで書く。cshを捨てる(推奨)
149 :デフォルトの名無しさん :2011/10/09(日) 04:15:21.44 .net インタラクティブに使ってるなら $ cat >Makefile 中身入力、改行 Ctrl+D
150 :デフォルトの名無しさん :2011/10/15(土) 00:10:57.09 .net Rob Pike曰く、Dennis Ritchieが亡くなったと。 https://plus.google.com/u/0/101960720994009339267/posts/ENuEDDYfvKP?hl=en 南無
151 :デフォルトの名無しさん :2011/10/15(土) 01:23:11.92 .net お悔やみ申し上げます
152 :デフォルトの名無しさん :2011/10/15(土) 18:28:21.23 .net _____ .ni 7 / \ ご冥福をお祈りします l^l | | l ,/) / /・\ /・\ \ .n ', U ! レ' / |  ̄ ̄  ̄ ̄ | l^l.| | /) / 〈 | (_人_) | | U レ'//) ヽっ \ | / ノ / /´ ̄ ̄ ノ \_| \rニ | `ヽ l
153 :デフォルトの名無しさん :2011/10/15(土) 20:21:34.20 .net
154 :デフォルトの名無しさん :2011/10/15(土) 20:29:40.38 .net まちごた まいいや
155 :デフォルトの名無しさん :2011/10/18(火) 17:07:46.91 .net >>70 ライセンスの問題とか絡むからじゃね? 無料で公開すべきものを本を買うとか金銭発生するし
156 :デフォルトの名無しさん :2011/10/19(水) 08:32:31.05 .net >>70 「unix向けアプリ」というのはたとえばGTK+とかでアプリを作るという事でいい? いくつか本が出てたと思うけど。実際に本屋にないという意味?
157 :デフォルトの名無しさん :2011/10/19(水) 09:12:36.56 .net 隣のおっさんうるさい
158 :デフォルトの名無しさん :2011/10/19(水) 12:42:25.99 .net じゃあ転職しろ
159 :デフォルトの名無しさん :2011/10/21(金) 13:03:48.22 .net >>156 普通はコマンドライン版を指すよ
160 :デフォルトの名無しさん :2011/10/21(金) 19:53:17.14 .net そんなこたーない。
161 :デフォルトの名無しさん :2011/10/21(金) 22:24:13.25 .net 「コマンドラインアプリ」ってあんまり聞かないな
162 :デフォルトの名無しさん :2011/10/22(土) 02:07:40.32 .net cursesを使ったようなやつ?
163 :デフォルトの名無しさん :2011/10/22(土) 02:44:59.58 .net 単にコマンドって言うもんね。
164 :デフォルトの名無しさん :2011/10/22(土) 03:01:48.61 .net Xアプリケーションプログラミング1 xlib編で書かれていたアプリケーションとは 不特定多数のユーザに使われることを前提として作られた,"汎用的で便利なプログラムのことをアプリケーションと呼ぶ" (引用 p.27 l.17~18) だそうで X用のプログラムは必然的にアプリケーションと呼ばれるだけの性質を持つそうです
165 :デフォルトの名無しさん :2011/10/22(土) 11:25:36.43 .net Ach, so.
166 :デフォルトの名無しさん :2011/10/22(土) 12:29:12.68 .net http://www.amazon.co.jp/dp/4883170225 これか? 20年も前の歴史的価値品ない骨董本引用して何が言いたいんだ? ジジイ。
167 :デフォルトの名無しさん :2011/10/22(土) 16:16:40.17 .net >>166 流れからすると>>67 の発言みたいで、ジジイじゃないっぽいけどw 自分はたぶんジジイだがw X11のプログラミングの本で、これみたいに比較的 気楽なノリで始められる本はあまりなかったように記憶しているのだが。 何かいい本をご存知ですか? そもそもXlibを使うこと自体が骨董に属するんだったりしてw 何か違うもの、たとえばOpenGLとかでやった方がいいのかな?
168 :デフォルトの名無しさん :2011/10/22(土) 16:49:58.99 .net 大昔でもアプリ向けにはathenaとかmotifとか使ってたんでは。 あとOpenGLと比べるのもなにかおかしい気が。
169 :デフォルトの名無しさん :2011/10/22(土) 18:18:16.62 .net >>166 の2巻目はAthenaウィジェット編だからな 当時もXlibでアプリ作るとか無いだろ
170 :デフォルトの名無しさん :2011/10/22(土) 19:08:53.18 .net >>168 今はXlibの話をしてるつもりなんで逆にAthenaとか言い出す方がちょっと違う。 あ、イベント処理とかもいるからGLUTもか。 >>169 Xlibだけで自分でボタンやメニューを作ったりしたのはいい思い出w
171 :デフォルトの名無しさん :2011/10/22(土) 19:27:58.00 .net ああそうなの、アプリの話かと思ったわ。すまんね。
172 :デフォルトの名無しさん :2011/10/23(日) 00:20:01.27 .net 67は今やオールドテクノロジー化したXlib本を買って何がしたいのやら
173 :デフォルトの名無しさん :2011/10/23(日) 00:25:28.54 .net オールドテクノロジーってわけじゃないけども。 今時のGTKアプリだって下位層で使ってるんだから。 「低レベル」ってのが適切な形容詞だと思う。
174 :デフォルトの名無しさん :2011/10/23(日) 00:28:26.89 .net 時代はXlibからXCBだと聞いた
175 :デフォルトの名無しさん :2011/10/23(日) 13:13:19.54 .net >>67 X11 http://xjman.dsl.gr.jp/X11R6/X11/
176 :デフォルトの名無しさん :2011/10/23(日) 13:15:02.36 .net >>67 Xlib Programming Lectures http://homepage3.nifty.com/rio_i/lab/xlib/
177 :デフォルトの名無しさん :2011/11/05(土) 15:09:51.61 .net EmacsやらNetbeansやらをいじっていて気付いたのですが, 大昔(EclipseもNetbeansもなかった頃)のGNUとかオープンソース界隈のエロい人たちが使っていた IDE(統合開発環境)ってどうなってたんでしょうか? IDEなんか使ってなくて,CUIに仮想デスクトップ+vi/Emacs+gcc/gdbとか普通にありそうですが…
178 :デフォルトの名無しさん :2011/11/05(土) 15:55:37.08 .net いまはemacsにもIDEが乗っかってる時代だからな
179 :デフォルトの名無しさん :2011/11/05(土) 16:11:48.60 .net フルカスタマイズしたEmacsがIDE相当だな 結構色んなこと出来るよあれ、環境作るのは面倒いけど
180 :デフォルトの名無しさん :2011/11/06(日) 06:57:42.24 .net 仮想デスクトップがscreenか
181 :デフォルトの名無しさん :2011/11/06(日) 10:49:33.98 .net ・エディタの無い時代 ソースは紙に下書き、パンチカードに清書して入力するよ! 出来上がったソースは印刷してチェックだ! ジジイ達が処理の切れ目に書く馬鹿デカいコメントはこの時代の名残りだよ! だって印刷物は関数のところへジャンプも、そもそも検索も出来ないからな! ・ラインエディタ時代(edなど) 環境によっては標準出力はプリンタかも知れないよ! でも入力してるその場でソース見たり、エディタによっては検索も出来るよ!便利! ・スクリーンエディタ登場(viなど) なんと行の途中の文字だけ編集したり出来るよ! これで長い行もサクサク編集出来るね! ディスプレイもみんなの分あるから、超便利になったよ!
182 :デフォルトの名無しさん :2011/11/06(日) 13:20:47.68 .net >>181 プログラム書いた紙(コーディングシート)はパンチャーのおばちゃんにパンチしてもらうんだぜ。 その後の修正は自分でパンチするけどね。
183 :デフォルトの名無しさん :2011/11/06(日) 14:15:14.94 .net 前の職場にリアルでリアルでパンチャーやってた頃があるって言ってたパートのおばちゃんが居たな…
184 :デフォルトの名無しさん :2011/11/06(日) 16:05:23.93 .net emacsが無かった時はvi使ってたよ いまでも普通にvi使う echo>> だけで済ませることもしばしば
185 :177 :2011/11/06(日) 18:53:49.18 .net このスレのエロい人thx! 複数の言語で何か処理してファイルで読み書きするというレベルに達したので,次のレベルに進みたくて調べたけど 大体予想通りということがわかりました. 昔と違って分野が複数ある(並列化一つとってもマルチスレッド,マルチコア,マルチプロセッサにGPU)ので 進む方向性を選ぶのが難しい.
186 :デフォルトの名無しさん :2011/11/06(日) 19:36:36.25 .net >>185 ハードとソフトが混ざってんぞ マルチスレッド、分散処理、GPGPUな あ、あとSIMDかSSE命令などのデータ並列命令な
187 :デフォルトの名無しさん :2011/11/06(日) 22:26:54.73 .net >>185 >昔と違って 本質的にはそんなに違わんw >進む方向性を選ぶのが難しい. 何かをどうしても高速に計算したいとかあるわけじゃなく、お勉強でやってるだけなら かたっぱしからやっとけばw
188 :デフォルトの名無しさん :2011/11/06(日) 23:08:12.64 .net 馬鹿には無理
189 :177 :2011/11/07(月) 00:36:34.52 .net 情報系の院生として研究に従事していますが,自分の立ち位置は「他学問から対象問題を収集,複数の手法を組み合わせて解く」こと. 問題に対する解法の有効性を検証するのが仕事なので,シンプルに組んでそこそこ新しい計算端末で4日ほど計算させる. 有効性が検証されたら,複数の小問題として分割して学部生の卒論として展開されます. なのでGPGPUやMap-Reduceなどの先進的な手法を自分で扱いたいのですが,そこまで時間を確保できない. >>186 すみません,利用する選択肢で書いてしまいました. ただGPGPUなどもそうですが,自然科学分野の対象問題を性能を引き出すように構築するのって すごく難しい(この変数が何バイトで…と考えなければならないので) >>187 昔といってもベーマガ全盛期のあたりを指しています. 教科書を元に脇目もふらず,ロジックを検討できるのはいいなぁと思います. 今ではWebアプリ(phpからJSP,RoRなど)やクラウドも登場して選択肢と夢ばかりがひろがりんぐです. >>188 そのとーりだと思います
190 :デフォルトの名無しさん :2011/11/07(月) 02:56:08.65 .net コンパイルが通らなくて困っています。 OS BSD/OS 4.3 コンパイルしたいもの libfetch コンパイラgcc 2.95.3 cc -O2 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wreturn-type -Wcast-qual -Wpointer-arith -Wwrite-strings -Wswitch -Wshadow -Werror -D_LARGEFILE_SOURCE -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 -DDEF_UMASK=0022 -I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libarchive/libarchive -I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libfetch -DHAVE_NBCOMPAT_H=1 -I/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libnbcompat -I. -D_LARGEFILE_SOURCE -D_LARGE_FILES -DFTP_COMBINE_CWDS -c common.c cc1: warnings being treated as errors common.c: In function `fetch_write': common.c:639: warning: function declaration isn't a prototype というエラーでコンパイルが通りません common.cのソースは #ifndef MSG_NOSIGNAL #include <signal.h> #endif
191 :デフォルトの名無しさん :2011/11/07(月) 02:56:51.16 .net ssize_t fetch_write(conn_t *conn, const void *buf, size_t len) { struct timeval now, timeout, waittv; fd_set writefds; ssize_t wlen, total; int r; #ifndef MSG_NOSIGNAL static int killed_sigpipe; #endif #ifndef MSG_NOSIGNAL if (!killed_sigpipe) { signal(SIGPIPE, SIG_IGN); killed_sigpipe = 1; } #endif 639行目はsignal(SIGPIPE, SIG_IGN);になります。 man signalをした所 void *signal(sig,func()); void (*func)(sig) と書いてありました。 <sys/signal.l>ヘッダファイルは __BEGIN_DECLS void (*signal __P((int, void (*) __P((int))))) __P((int)); __END_DECLS #endif /* !_SYS_SIGNAL_H_ */ と書いてありました。 もちろんヘッダファイルにSIGPIPEとSIG_IGNは定義してあります。 これはOS側のsignalが古すぎてコンパイルできないのでしょうか? なんとか良い方法は無いでしょうか?
192 :デフォルトの名無しさん :2011/11/07(月) 04:36:48.82 .net >>191 >OS BSD/OS 4.3 えらく懐かしいものをお使いで。特に自分で解決できる技量がない場合には、 より新しくて沢山の人が使っている環境を使った方が楽だよw で、 安直な方法: -Werror なしでコンパイルする もう少しちゃんとした方法: 1) 本当に signal(SIGPIPE, SIG_IGN); の箇所か確認(試しにここをコメントアウトしてみる等) 2) 関数やその引数に最終的にどういう宣言が使われているか確認。プリプロセッサ処理 後のファイルをチェックしてみるとか。 (3) (2)の原因を理解して修正。インクルードやマクロ定義を修正したりとか。 >void *signal(sig,func()); manにこう書いてあるのはググってもそうひっかからないんだけど http://mail-index.netbsd.org/netbsd-bugs/1996/03/24/0001.html というのがあるので、あるリリースのBSDにはそういうmanが付いてきたのかもね。
193 :デフォルトの名無しさん :2011/11/08(火) 01:55:19.23 .net >>192 すいません。 ありがとうございます。 1)はコメントした所、コンパイルとおりました。 2)はすいません。gccとpkgsrcに不慣れなため、まだ試していません 3)はビンゴだと思います。 たぶんBSD/OS 4.0のmanをインターネットで見つけたのですが、 http://www.eecs.harvard.edu/syrah/vino/release-0.40/man/programref/libc/signals/signal.3.txt void(*signal(int sig, void (*func)());)() と正しいようです。 ヘッダファイルを修正してやってみます。
194 :デフォルトの名無しさん :2011/11/22(火) 02:33:19.77 .net リチャードスティーブンスの本でわからない点があるので質問します unixネットワークプログラミングでifreq構造体ifr_dstaddrの説明でp-to-pリンクの反対側とありますが どういうことでどういう値が入るのでしょうか
195 :デフォルトの名無しさん :2011/11/22(火) 09:03:54.79 .net ifconfigでPPPなどのpoint-to-pointなインターフェースを作ると、 対向側のIPアドレスが入る。
196 :デフォルトの名無しさん :2011/12/07(水) 19:19:33.28 .net Xclockとか一見シンプルそうなアプリでさえ ソースコード見るとすんげえ量で萎える 人のコード見て勉強とかちょっと疲れてきた
197 :デフォルトの名無しさん :2011/12/07(水) 20:19:34.24 .net Win32API ほどじゃない
198 :デフォルトの名無しさん :2011/12/07(水) 21:35:07.67 .net >>196 http://www.pygtk.org http://live.gnome.org/Seed GUIアプリならこういうので書けば? あるいはせめて、 http://www.gtk.org
199 :デフォルトの名無しさん :2011/12/07(水) 22:21:43.40 .net wxPython オヌヌメ
200 :デフォルトの名無しさん :2012/01/20(金) 17:00:54.36 .net xmessageって便利やな
201 :デフォルトの名無しさん :2012/01/20(金) 19:51:48.27 .net 今ubuntuのGCCコンパイラが4.5.2 が入っているんですが、 そのGCCコンパイラを4.4.5にダウングレードしたいのですが、どうすればいいですか?
202 :デフォルトの名無しさん :2012/01/20(金) 20:11:06.84 .net パッケージのダウングレードなら犬板のUbuntuスレ、ソースからコンパイルならGCCスレで聞く方が良さ気
203 :デフォルトの名無しさん :2012/01/20(金) 20:14:03.88 .net >>202 ヒントサンクス そこで聞いてみるノシ
204 :デフォルトの名無しさん :2012/01/21(土) 13:52:42.46 .net 【プログラミング部】 PHPが100倍速で動くようになったぞー http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
205 :デフォルトの名無しさん :2012/01/25(水) 02:16:44.58 .net LinuxとかBSD系ってUNIXじゃなかったのな 昨日初めて知った ってことはLinux系の質問はここじゃスレチになるのか
206 :デフォルトの名無しさん :2012/01/25(水) 04:27:28.79 .net 1によるとUNIX cloneも含んでいるからおkよ
207 :デフォルトの名無しさん :2012/01/25(水) 15:13:45.95 .net つうか清く正しいAT&Tの血統はまだ残っとるのか?
208 :デフォルトの名無しさん :2012/01/26(木) 04:58:13.71 .net LinuxはUNIXじゃないがBSDはUNIXで良いと思ってた
209 :デフォルトの名無しさん :2012/01/26(木) 10:04:56.87 .net BSDはUNIXの血を浄化しました。
210 :デフォルトの名無しさん :2012/01/26(木) 14:15:55.41 .net BSDはトレードマークである「UNIX」は名乗れないです。 opengroupの認証通ってないので。
211 :デフォルトの名無しさん :2012/01/26(木) 14:37:35.26 .net 敢えてソースから何から全部書き直して ライセンス汚染してないことにしてる?
212 :デフォルトの名無しさん :2012/01/26(木) 14:47:49.48 .net 短いからとりあえずこれでも読めば http://ja.wikipedia.org/wiki/BSD
213 :デフォルトの名無しさん :2012/01/26(木) 15:34:29.19 .net Single UNIX Specification - Wikipedia http://ja.wikipedia.org/wiki/Single_UNIX_Specification これにLinuxもBSD系もどうたらこうたらって読んだ
214 :デフォルトの名無しさん :2012/01/27(金) 03:47:31.46 .net まだ初心者で申し訳ないのですが、 Ubuntu上でC++言語(g++)でマウス操作をやりたいと思い、 XAutomationのxteのソースを見て真似てみました。元はC言語でかかれています。 #include <X11/Xlib.h> #include <X11/extentions/XTest.h> としていて、そのヘッダではifdefでC++の場合は extern "C" が付きます。 なので自分の.cppでは特別なことをせずにXTestFakeMotionEvent(..)が呼べるはずなのですが、 リンカが"undefined reference to XTestFakeMotionEvent"とエラーを出します。 どうすればよいでしょうか?
215 :デフォルトの名無しさん :2012/01/27(金) 04:16:59.41 .net -iXtst してる? gccのコマンドライン晒したほうがいいよ できれば最小限のソースも
216 :デフォルトの名無しさん :2012/01/27(金) 05:41:13.84 .net あれ、l って打ったつもりが i になってる。ごめん -lXtst の誤り。詳しくは man xtestqueryextension で
217 :デフォルトの名無しさん :2012/01/28(土) 01:10:43.39 .net Macの質問もここでおkなの?
218 :デフォルトの名無しさん :2012/01/28(土) 02:58:00.76 .net Mac固有にならなければ
219 :デフォルトの名無しさん :2012/01/28(土) 03:22:15.70 .net マックってユニックスだったんか 知らなかったわ
220 :デフォルトの名無しさん :2012/01/28(土) 20:27:34.75 .net ということはiPhoneの質問もここでおkかな?
221 :デフォルトの名無しさん :2012/01/28(土) 20:33:41.08 .net iOSはUnix系だとあるけど iPhoneでUnix的な使い方ってできたんだっけ?
222 :デフォルトの名無しさん :2012/01/28(土) 22:49:16.13 .net mmapとか動くよ
223 :デフォルトの名無しさん :2012/01/29(日) 10:19:19.06 .net >>221 「使い方」によるが、 カーネルとAPIの一部がBSDとコードベース同じだから。
224 :デフォルトの名無しさん :2012/02/07(火) 20:55:21.88 .net おねがいします プロセス間通信で使う、名前付きFIFOをPスレッド間で使うことは可能でしょうか? それともなにか問題が発生するでしょうか? また、名前付きFIFOの名前を既存ファイルとかぶらないように自動生成する方法はありますか?
225 :デフォルトの名無しさん :2012/02/07(火) 21:16:13.63 .net vimrcとかbashrcとかscreenrcのrcって何の略なんですか?
226 :デフォルトの名無しさん :2012/02/07(火) 21:25:42.05 .net run commandの略だという説が有力
227 :デフォルトの名無しさん :2012/02/07(火) 21:35:56.81 .net UNIXの部屋 コマンド検索:rc (*BSD/Linux) http://x68000.q-e-d.net/~68user/unix/pickup?rc
228 :デフォルトの名無しさん :2012/02/07(火) 23:49:16.68 .net >>224 プロセス間で使えてスレッド間で使えなくなる理由が分からない その内容だとpipeで十分に思える。というより、そういうライブラリ使ったほうがオーバーヘッドがないような 一時ファイルはmktempで作ると他と衝突しない
229 :デフォルトの名無しさん :2012/02/08(水) 02:35:32.10 .net × mktemp ○ mkstemp じゃなかったかな。 >>224 SIGPIPEのハンドリングが難しいのかな。 よくわかってないけどw
230 :デフォルトの名無しさん :2012/02/08(水) 02:56:19.60 .net mkstempって普通ファイル以外作れたか?
231 :デフォルトの名無しさん :2012/02/08(水) 07:55:45.41 .net >>226 ,227 ありがとうございました
232 :デフォルトの名無しさん :2012/02/08(水) 20:32:47.58 .net >>228 >>229 >>230 用語を間違えていました。 名前付きFIFOではなく、名前付きパイプ(=FIFO)でしたね。失礼しました。 スレッド間だともしかして排他処理がうまくできないのではと思ったもので。 スレッド間で使うなら確かに匿名パイプのほうが適切ですね。 mktemp()のセキュア版であるmkstemp()は、ファイル自体を作ってしまうのですが、 普通のファイルをパイプ化できるのであれば問題ないのですが、 どうもそのようなことをしてくれるシステムコールは存在しないようで・・・ tmpnam()で名前だけ作ってmkfifo()でFIFOを生成してもいいのですが、 tmpnam()のせいでコンパイル時に恐ろしげな警告が出るのが気持ち悪くて・・・ ・・・困りました
233 :デフォルトの名無しさん :2012/02/08(水) 23:27:28.46 .net スレッド間ならファイルディスクリプタは共有しているので、名前付きである必要な理由は無いな。 あえてnamed pipeを選択する理由は?
234 :デフォルトの名無しさん :2012/02/09(木) 00:30:27.29 .net 名前付きを使いたいのはスレッド間ではないです
235 :デフォルトの名無しさん :2012/02/09(木) 00:37:06.84 .net forkすればファイルディスクリプタは複製されるし、全く別のプロセスに ソケットを使ってファイルディスクリプタを送信することもできたはず というかその用途ならソケットで通信すればいいのでは?
236 :デフォルトの名無しさん :2012/02/09(木) 00:39:23.33 .net > プロセス間通信で使う、名前付きFIFOをPスレッド間で使うことは可能でしょうか? > 名前付きを使いたいのはスレッド間ではないです どっちが本当?
237 :デフォルトの名無しさん :2012/02/09(木) 00:47:02.99 .net 下が本当です 上はうっかりミスで、 「プロセス間通信で使う、パイプをPスレッド間で使うことは可能でしょうか?」 が意図したQでした。 よって、想定しているシチュエーションは2つあったわけです。 1. スレッド間でパイプ使用 2. (プロセス間の)FIFOのユニークな名前の自動生成
238 :デフォルトの名無しさん :2012/02/09(木) 00:50:14.29 .net できればプロセス間でも親子関係とか持たせてパイプにする方がいいような。 どうせユニークな名前をどうにかして相手に伝えないといけないんでしょ。
239 :デフォルトの名無しさん :2012/02/09(木) 00:56:05.42 .net パイプでつなぎたい先のプロセスは、独立した実行ファイルによるものですので
240 :デフォルトの名無しさん :2012/02/09(木) 00:56:56.90 .net forkしてパイプ準備してからexecすればいいのでは
241 :デフォルトの名無しさん :2012/02/09(木) 01:03:48.90 .net 寝ぼけてました・・・ 全く、そのような方法でやろうと自分でも考えていました。
242 :デフォルトの名無しさん :2012/02/09(木) 01:12:26.89 .net 書き込む前に一度読み直して人に伝わるかどうか位確認しろw 結局>>240 の提示した方法で実現できそうな話だったんだな?
243 :デフォルトの名無しさん :2012/02/09(木) 06:14:23.72 .net パイプの名前は?
244 :デフォルトの名無しさん :2012/02/09(木) 11:21:57.81 .net >>243 ズシオ
245 :デフォルトの名無しさん :2012/02/09(木) 13:40:45.86 .net SIGPIPEウゼエって時は、 int result = send( fd , buffer ,size , MSG_NOSIGNAL); ってやり方もある。OSとfiletypeを選ぶけども。
246 :デフォルトの名無しさん :2012/02/09(木) 18:25:23.87 .net SIGPIPEなんて速攻でIGNOREしてたわ
247 :デフォルトの名無しさん :2012/02/09(木) 19:24:31.48 .net 解決した後で聞かれもしてない事(しかも大した情報量がない)を ドヤ顔で言い出す奴ってかなり恥ずかしい。
248 :デフォルトの名無しさん :2012/02/09(木) 22:59:21.62 .net ためになるからイナフだ
249 :デフォルトの名無しさん :2012/02/10(金) 12:53:22.71 .net >>247 は可哀想。
250 :デフォルトの名無しさん :2012/02/10(金) 20:19:25.23 .net system()がダメでexec*()じゃなければならない場合って具体的にどういう使いどころですかね?
251 :デフォルトの名無しさん :2012/02/10(金) 20:30:04.86 .net ・forkした後にあれしたりこれしたり ・login shellに左右されたくないコマンドライン
252 :デフォルトの名無しさん :2012/02/10(金) 21:47:45.05 .net すいません・・・ そこをもう一声具体的に・・・悲
253 :デフォルトの名無しさん :2012/02/10(金) 21:53:36.60 .net 自分とパイプで繋がった子プロセス内で外部のプログラムを実行できたりとか
254 :デフォルトの名無しさん :2012/02/10(金) 22:01:58.79 .net コマンドラインとして渡す文字列(の一部)が文字列としてプログラム外からやってくる時。
255 :デフォルトの名無しさん :2012/02/10(金) 22:11:03.48 .net >>253 これは、なるほど! 実際試してみます >>254 ___ ━┓ ___ ━┓ / ― \ ┏┛/ ―\ ┏┛ / (●) \ヽ ・. /ノ (●)\ ・ / (⌒ (●) /. | (●) ⌒)\ /  ̄ヽ__) / | (__ノ ̄ | /´ ___/ \ / | \ \ _ノ | | /´ `\
256 :デフォルトの名無しさん :2012/02/10(金) 22:16:24.42 .net fork+execとsystemの違いってなんですか、ならわかるけど forkとsystemの違いってなんですか、だと根本的に勘違いしてるだろうからman読んだほうがいいよ
257 :デフォルトの名無しさん :2012/02/10(金) 22:19:18.11 .net こんな>>255 態度で返す奴ってなんなの?
258 :デフォルトの名無しさん :2012/02/10(金) 22:26:11.92 .net 「シェルを通すか通さないか」という言葉ぐらいは知ってるんですが、 じゃあ、使い分けが必要なのは具体的にどういう箇所で?となると わかっている人に教わったほうが間違いがないかと思ったものですから・・・謝
259 :デフォルトの名無しさん :2012/02/10(金) 22:32:43.19 .net 言い訳だけしてまともに謝る事すらできないのか 人間のクズだな
260 :デフォルトの名無しさん :2012/02/10(金) 22:40:55.98 .net ごめんなない
261 :デフォルトの名無しさん :2012/02/10(金) 22:51:07.88 .net 誠意を見せたかったらどうするのかわからないのか? 教えてやろう。画像を貼るんだよ。
262 :デフォルトの名無しさん :2012/02/10(金) 23:12:37.26 .net http://www.youtube.com/watch?v=xISG4nGTQYE いかがでしょうか?
263 :デフォルトの名無しさん :2012/02/11(土) 00:25:56.53 .net systemとexecじゃできることが違いすぎて何を聞きたいのかが不明過ぎる
264 :デフォルトの名無しさん :2012/02/11(土) 00:34:15.31 .net はったりはやめなよ
265 :デフォルトの名無しさん :2012/02/11(土) 00:42:24.53 .net UNIX勉強しろよ
266 :デフォルトの名無しさん :2012/02/11(土) 00:53:47.37 .net 薀蓄自慢したい人ですかね?
267 :デフォルトの名無しさん :2012/02/11(土) 11:43:52.95 .net >>263 別プロセスを生成させる以外になにか大きな使い方の差があるのでしょうか?
268 :デフォルトの名無しさん :2012/02/11(土) 11:48:54.36 .net >>267 シェルがあるかないか も超重要じゃね?
269 :デフォルトの名無しさん :2012/02/11(土) 11:50:30.76 .net >>267 ・systemは1)プロセスを生成して、2)別バイナリを実行する。 1と2の間にいろいろできる。(パイプでつなぐ、資格情報の制御、リソースの制限などなど) ・systemはshに実行させる。shの機能(リダイレクトとか)が使える反面、セキュリティ上の問題を起こしやすい。
270 :デフォルトの名無しさん :2012/02/11(土) 12:25:17.58 .net >>264 ,266,267 やるきねーだろ
271 :デフォルトの名無しさん :2012/02/11(土) 16:31:24.52 .net やる気はあります! レスが付くまで全裸で待機していましたし
272 :デフォルトの名無しさん :2012/02/11(土) 16:39:39.91 .net 全裸待機する暇があったらman 3 system; man 3 exec
273 :デフォルトの名無しさん :2012/02/11(土) 16:49:39.39 .net らめえぇぇぇぇぇぇぇ システムのページサイズを超えてかきこまないでぇぇぇぇ あたしまだバージョン 2.6.11 より前なのにぃぃぃぃぃ みたいな
274 :デフォルトの名無しさん :2012/02/11(土) 17:31:53.25 .net Linux板でも逝け
275 :デフォルトの名無しさん :2012/02/11(土) 20:16:56.46 .net あそこは管理系の薀蓄でブヒってるのが多いからなんとなくイヤ 「お前が管理しているそのツールのこの機能はどうやって作るのか」 という質問には答えてくれなそう
276 :デフォルトの名無しさん :2012/02/11(土) 21:06:14.73 .net >>275 > 「お前が管理しているそのツールのこの機能はどうやって作るのか」 何言っているかよくわかりませんw
277 :デフォルトの名無しさん :2012/02/11(土) 22:19:30.22 .net 詳解UNIXプログラミング UNIXカーネルの設計 を読み終わったらまたいらっしゃい
278 :デフォルトの名無しさん :2012/02/11(土) 22:38:19.99 .net そしてだれもいなくなった(未完)
279 :デフォルトの名無しさん :2012/02/11(土) 22:48:13.34 .net 嵐の番組ってCMが生理用品ばっかでワロス
280 :デフォルトの名無しさん :2012/02/11(土) 23:10:22.97 .net >>278 まだまだ
281 :デフォルトの名無しさん :2012/02/11(土) 23:58:08.93 .net >>277 >詳解UNIXプログラミング 棚から引っ張り出して眺めているが、内容が古くて実用に注意を要する もっと新しいの同等品を教えろ
282 :デフォルトの名無しさん :2012/02/12(日) 00:18:42.76 .net 2/eが出てるよ
283 :デフォルトの名無しさん :2012/02/12(日) 00:38:58.73 .net 違いを意識したことないが、その手の本でPOSIX 2008に対応してるのってあるの?
284 :デフォルトの名無しさん :2012/02/12(日) 01:04:05.10 .net 思いあたるのはこれ http://www.man7.org/tlpi/tlpi_in_detail.html
285 :デフォルトの名無しさん :2012/02/12(日) 01:50:48.07 .net >>284 表紙キモ!!!!!! 陰嚢の皺を無数の虱に這い回られているような気持ち悪さだ
286 :デフォルトの名無しさん :2012/02/12(日) 02:04:12.95 .net 旨そうなゼンマイだと思ったのにw >>284 へーLinuxか。2008の機能も実装してたのか。この辺りの各OSごとの実装状況はまるで分からんが、 実装されているならマニュアルもあるだろうからそっちから調べるのもありだな。ありがとう
287 :デフォルトの名無しさん :2012/02/12(日) 04:11:48.67 .net >実装されているならマニュアルもあるだろう (;゚ Д゚) …!? (つд⊂)ゴシゴシ
288 :デフォルトの名無しさん :2012/02/12(日) 10:22:03.92 .net http://man7.org/tlpi/translations/index.html > Japanese O'Reilly Japan Announced (Q2 2011). > Publication likely in second half of 2012. 絶対出ないと思ってたのに 今の日オラにこんな根性があるとは思わなかった
289 :デフォルトの名無しさん :2012/02/12(日) 19:24:06.62 .net また半端な翻訳かまして、後が出ないよ糞詰まり状態に1000ペリカ
290 :デフォルトの名無しさん :2012/02/12(日) 20:04:02.50 .net >>288 ポチってしまった俺は、訳本が出る前に完読してやろうと心に誓うのであった
291 :デフォルトの名無しさん :2012/02/12(日) 22:26:02.57 .net 出版元のサイトからPDFつきが70$で買えるけど(ディスカウントクーポン使用) もしAmazonでポチってたら強く生きてくれ
292 :290 :2012/02/13(月) 21:39:17.18 .net なんじゃこの箱枕は!!!!! ('A`)
293 :デフォルトの名無しさん :2012/02/14(火) 07:55:05.11 .net UNIXのインダイレクションについてレポートにまとめろとかいわれたんだけどUNIXとインダイレクションって なんか関係あったっけ?
294 :デフォルトの名無しさん :2012/02/14(火) 08:22:51.30 .net リダイレクションの聞き間違いだろ。
295 :デフォルトの名無しさん :2012/02/14(火) 12:40:18.10 .net >>293 せっかくだからそのままインダイレクションでレポート書いちゃえ
296 :デフォルトの名無しさん :2012/02/18(土) 03:02:26.53 .net fork + execlpしたプログラムに引数でstruct構造体を渡すことってできますか?
297 :デフォルトの名無しさん :2012/02/18(土) 03:03:51.11 .net 馬鹿には無理
298 :デフォルトの名無しさん :2012/02/18(土) 03:50:08.03 .net 勉強しなおします
299 :デフォルトの名無しさん :2012/02/18(土) 05:33:46.00 .net 構造体の中身を全部文字列に直して、引数で渡して、その文字列から構造体を作り直せばいいよ
300 :デフォルトの名無しさん :2012/02/18(土) 09:35:31.88 .net mmapした領域にコピーしとく、ファイルディスクリプタはそのまま 継承されるから、子プロセスでmmapすりゃいい。
301 :デフォルトの名無しさん :2012/02/18(土) 21:05:03.13 .net テキストファイルを実行ファイルの一部としてくっつけておいて 実行時にそれを普通のファイルみたいにopen/read/writeすることは可能でしょうか?
302 :デフォルトの名無しさん :2012/02/18(土) 21:13:51.06 .net 実行するユーザがread, write権限もってりゃできる。 そういうユーザーは実行ファイルを壊すことも、悪質なプログラムに 中身をすり替える事も可能になる。
303 :デフォルトの名無しさん :2012/02/18(土) 21:48:35.70 .net で、どうやって?
304 :デフォルトの名無しさん :2012/02/18(土) 21:59:22.91 .net 自分が入ってたファイルを書き込みモードでオープンできるかどうかは、 ファイルシステムに拠るんじゃないかな。 パーミッション的にOKだったとしても。
305 :デフォルトの名無しさん :2012/02/18(土) 22:01:55.04 .net ファイルシステムじゃなくてOSに拠るのかも。 とりあえずbsd系では平気そうだけどlinuxでは無理だよね。
306 :デフォルトの名無しさん :2012/02/18(土) 22:26:29.07 .net Solarisなんかも書き込みはアウト。 Text file is busyになる。 BSDもダメなはずだが… 一つの実行ファイルを配布して、それを実行しながら書き換えようってのは無理。 Mac OS Xならリソースフォークを書き換えればいいが。
307 :デフォルトの名無しさん :2012/02/18(土) 22:33:01.16 .net >>306 BSDは手元にないからわからないけど、OS Xは書き込めるよ。
308 :デフォルトの名無しさん :2012/02/19(日) 01:26:23.23 .net forkしたあとなら出来る?
309 :デフォルトの名無しさん :2012/02/19(日) 01:36:19.24 .net textをbusyにしているプロセスが2つに増えるだけ。
310 :デフォルトの名無しさん :2012/02/19(日) 01:48:39.19 .net BSDとかMachの仮想記憶だと、同じページをマップしてても書き換えたらコピーが作られるんじゃないの? だからOS Xは書き込める。
311 :デフォルトの名無しさん :2012/02/19(日) 01:55:39.11 .net それはどのUNIXでも同じ。 ただし書き換えられるのはデータ領域。 実行ファイルが書き換えられるわけじゃない。 Mac OS X(Darwin)は同一ファイル内のリソースフォークを書き換える必要があるから、 HFS+のファイルはそう扱ってる。UFS(今はもうないが)上だと違う。
312 :デフォルトの名無しさん :2012/02/19(日) 02:02:29.64 .net ああそうなんだ。OS Xでもファイルシステム依存なのね。
313 :デフォルトの名無しさん :2012/02/19(日) 04:12:08.40 .net 最終的に変更されたバイナリが残ればいいのなら、プログラム起動時にどこかにコピーを作ってそれで上書きすれば その上書きした方に対して自由に読み書きできると思うんだが、いろいろ怖い
314 :デフォルトの名無しさん :2012/02/19(日) 04:22:57.33 .net おまえらautoconfわかる? これでx86プロセッサーのコア数を確認するマクロあったら教えてくれ。 http://www.gnu.org/software/autoconf-archive/The-Macros.html#The-Macros ここに有志が書いたマクロについてのマニュアルがあるから、探してくれ。 誰か英語が得意な奴よろ。 もし無いなら誰かm4マクロでx86プロセッサーのコア数確認のマクロ書いてくれ。 これCPUの資料な。 たぶんアセンブラの命令とかで調べられるはずだから、 ここ読めばどっかに載ってるから。よろ。 http://download.intel.com/jp/developer/jpdoc/Processor_Identification_071405_i.pdf http://download.intel.com/jp/developer/jpdoc/248966-024JA.pdf http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol1_Online_i.pdf http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol2A_i.pdf http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol2B_i.pdf http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol3_i.pdf
315 :314 :2012/02/19(日) 04:25:44.64 .net やっぱいいわ、 見つかったわ http://www.gnu.org/software/autoconf-archive/ax_count_cpus.html#ax_count_cpus じゃあの
316 :デフォルトの名無しさん :2012/02/19(日) 08:45:12.06 .net 同じ問題で、画像データやアイコンデータなんかはどうやって管理しているの?
317 :デフォルトの名無しさん :2012/02/19(日) 09:29:28.41 .net なにが?
318 :デフォルトの名無しさん :2012/02/19(日) 10:27:43.92 .net >>316 パッケージ化して配布。 Macだってリモートファイルシステムではリソースフォークをうまく管理できないので、 buldleにして配布することが推奨されてる。
319 :デフォルトの名無しさん :2012/02/19(日) 10:43:27.62 .net リードオンリーなら別の問題だ。実行ファイルに埋め込む場合もある。
320 :デフォルトの名無しさん :2012/02/19(日) 12:29:42.23 .net 実行ファイルに埋め込んだ場合、「どこにあるか」を知らないと読み出しできないではないか・・・ すんません、そういう関数や手順があるなら教えてください 一般的なLinuxでgcc|g++を想定しての話です
321 :デフォルトの名無しさん :2012/02/19(日) 12:35:41.80 .net 読むだけならデータ化すればいいだけだろ。xpmみたいに。
322 :デフォルトの名無しさん :2012/02/19(日) 12:44:08.98 .net >>320 GNU ldなら ld -r -b binary -o foo.o foo.jpg でfoo.jpgをオブジェクトファイルにすることができる。 nm foo.oすりゃわかるが、_binary_foo_start、_binary_end_start というシンボルが定義される。 このオブジェクトファイルを普通にリンクすれば直にアクセスできる。 リードする必要すらない。
323 :デフォルトの名無しさん :2012/02/19(日) 12:45:22.01 .net おっと × _binary_foo_start、_binary_end_start ○ _binary_foo_start、_binary_foo_end
324 :デフォルトの名無しさん :2012/02/19(日) 12:46:13.97 .net それをどうやって、(その画像データを読むプログラムの)実行ファイルにくっつけるの? まさか、異様に長い配列を?・・・・て、静的データを置く領域が足りなくて無理だし
325 :デフォルトの名無しさん :2012/02/19(日) 12:47:30.16 .net >>324 は、>>321 へのQ
326 :デフォルトの名無しさん :2012/02/19(日) 12:50:51.17 .net 別のファイルにしろ
327 :デフォルトの名無しさん :2012/02/19(日) 12:55:13.43 .net いやだ!
328 :デフォルトの名無しさん :2012/02/19(日) 12:56:29.98 .net >>322 >>323 どうもありがとうございます 仕事場のマシンで実験してみます
329 :デフォルトの名無しさん :2012/02/20(月) 08:52:20.58 .net >>324 ,328 データサイズ的には>>321 と同じだぞ。 > 静的データを置く領域が足りなくて無理だし なら、>>322 も置けないという事にかわりはない。
330 :デフォルトの名無しさん :2012/02/20(月) 10:20:53.72 .net >>322 そういえばMac OS Xのバイナリにはアイコン用のセグメントってのが定義されてる。 今は有効かどうかわからないが、大昔のNeXTの頃はそこにアプリのアイコン画像を 保存していた。
331 :デフォルトの名無しさん :2012/02/20(月) 18:05:11.00 .net unixでdllのような動的ライブラリーはありますか? どうやって作ればいいですか
332 :デフォルトの名無しさん :2012/02/20(月) 18:11:55.71 .net >>331 なんで「unix 動的ライブラリ」でググらないの?
333 :デフォルトの名無しさん :2012/02/20(月) 18:41:49.66 .net 組み込みとかだとサポートしてないアーキテクチャとかあるんかね。8bitMMUなしとか動くUnixが無いか
334 :デフォルトの名無しさん :2012/02/20(月) 18:44:46.17 .net acfがあれば大体うごくよ
335 :デフォルトの名無しさん :2012/02/20(月) 18:46:58.44 .net >>331 あるけど、OSによって作り方も使い方も違う。 LinuxとFreeBSDとSolarisの間でも微妙に違うし、MacOS Xとなるとかなり違う。 その辺の違いを埋めようってことでGNU libtoolというのが作られているけど、 こいつがまた色々とアレで、無意味で余計で有害なことをしてくれることがある。 FreeBSDでバージョン番号の付け方が致命的に間違っているとか。 結局、libtoolを使いこなすためにもOSごとの違いを一通り知っておく必要がある。
336 :デフォルトの名無しさん :2012/02/20(月) 19:06:35.44 .net バージョン管理する気ないなら、軽微な差しかないと思っていい。
337 :デフォルトの名無しさん :2012/02/20(月) 19:08:02.12 .net >>335 バージョン番号の付け方って? libaaa.so.0.0.0 のような、最後に付加される0.0.0のことか? これfirefox9.0.1などの数字とは根本的に意味が違うものなのだが、その辺はおわかり?
338 :デフォルトの名無しさん :2012/02/20(月) 19:12:55.43 .net 最近のFirefoxもバージョンの振り方間違ってると思うw
339 :デフォルトの名無しさん :2012/02/20(月) 19:16:16.45 .net >>331 gcc -fPIC -c a.c gcc -shared -Wl,-soname,liba.so -o liba.so a.o
340 :デフォルトの名無しさん :2012/02/20(月) 19:17:37.67 .net >>339 嘘教えんなwww
341 :デフォルトの名無しさん :2012/02/20(月) 19:22:37.14 .net Mac OS Xではこんなような感じで作った記憶がある。 cc -fno-common -c a.o cc -dynamiclib -flat_namespace -undefined suppress -o liba.1.0.0.dylib a.o
342 :デフォルトの名無しさん :2012/02/20(月) 20:07:21.79 .net >338 あれはひどいな
343 :デフォルトの名無しさん :2012/02/20(月) 21:50:08.25 .net ファイル hello.c #include <stdio.h> void hello(void) {printf("hello world\n");} ファイル hello.h #ifndef __HELLO_H__ #define __HELLO_H__ extern void hello(void); #endif //__HELLO_H__ ファイル main.c #include <stdio.h> #include <hello.h> main(){hello();} ソースコードが何をしてるかは一目瞭然なので説明はしない。 わからない人はさようなら。 これを通常のリンクでビルドする場合 gcc -o a main.c hello.c -I./
344 :デフォルトの名無しさん :2012/02/20(月) 21:52:07.46 .net #include <hello.h> のいみがわかりません
345 :343 :2012/02/20(月) 21:52:35.46 .net これの hello.c モジュールを動的ライブラリにする場合、 最も基本的な方法だと以下のようになる。 gcc -fPIC -c hello.c gcc -fPIC -shared -Wl,-soname,libhello.so -o libhello.so hello.o #インストール作業 install libhello.so /usr/lib/ install hello.h /usr/include/ 結果、/usr/lib/、/usr/include/にライブラリーとしてコピーされる。 しかしこれではまだライブラリーは有効にならない。ldへの登録の必要がある。 ldconfig これで libhello.so を使えるようになった。 あとは通常のライブラリをリンクする場合のやり方でビルドできる。 gcc -o a main.c -lhello
346 :343 :2012/02/20(月) 21:53:39.53 .net libtoolを使って同様のことをする場合 libtool --mode=compile gcc -c hello.c libtool --mode=link gcc -o libhello.la hello.o -rpath /usr/lib #インストール作業 libtool --mode=install install libhello.la /usr/lib/libhello.la libtool --mode=install install hello.h /usr/include/hello.h ldconfig あとは普通にリンクできる。 gcc -o a main.c -lhello しかし、libtoolの有用な点は、この gcc -o a main.c -lhello も共通書式で書ける点にもある。 同じが、このようにも書ける。 libtoo --mode=compile gcc -o a main.c /usr/lib/libhello.la
347 :343 :2012/02/20(月) 21:55:09.86 .net libtoo --mode=compile gcc -o a main.c /usr/lib/libhello.la これは何を意味するかというと、動的ライブラリーが使用できないOSの場合は、libtoolは静的ライブラリを生成する。libhello.a もしも libhello.aの場合は、gcc の書式は動的ライブラリの場合とは異なり、以下のようになるが、 静的ライブラリの場合: gcc -o a main.c /usr/lib/libhello.a 動的ライブラリの場合: gcc -o a main.c -lhello この書式の違いを、共通の書式で統一できるのが libtoolの利点である。 libtool --mode=compile gcc -o a main.c /usr/lib/libhello.la と書くことで、OSの対応状況に状況に応じて、都合良い方でビルドされる。(基本的には動的ライブラリの使用が優先される。優先度の変更はオプションで行える)
348 :デフォルトの名無しさん :2012/02/20(月) 22:36:01.70 .net libtoolとかautotoolとか移植を簡単にするためのツールなのに、 そのツール自体の移植が非常に困難という矛盾。 考えた奴死ねばいいのに。
349 :デフォルトの名無しさん :2012/02/21(火) 00:17:38.61 .net >>348 ? なにを言ってるんだ? よく考えてみろ 移植という作業の、面倒な部分のみを『抽出』して、そこを隠蔽するツールがlibtoolやautoconf。 つまり、アプリの多プラットフォーム対応の際の、面倒な部分のみを抽出した問題。この問題を解く作業こそが、libtoolやautomakeの移植作業というもの。 面倒な問題だけを一ヶ所にあつめて、問題を解こうとしてるのだから、困難なのは当然だろ。 逆に、抽出した困難さが、もしも簡単に解ける程度であれば(簡単にlibtoolを移植できたのであれば)、 それはもともと、切り分けるに値しないほど簡単な問題だったということになる。
350 :デフォルトの名無しさん :2012/02/21(火) 00:24:37.56 .net なんで、システムライブラリ、ヘッダーをconfigureの度にスキャンするんだ? バカ丸出しのシステムだろ。 dllのリンクのために何行のツール作ってるんだ? リンクのために5行以上の記述が必要なシステムなんか見たことないぞ。
351 :デフォルトの名無しさん :2012/02/21(火) 00:31:39.51 .net まあ色々なプラットフォームでのビルドをサポートするためのツールだし。 あとキャッシュを消さなければ毎回スキャンはしないかも。
352 :デフォルトの名無しさん :2012/02/21(火) 00:46:44.25 .net >>350 autoconfはdllのリンクのためだけにあるツールじゃない。 まずツールが何するものなのか、結構簡単なんでそこを理解することから始めよう。
353 :デフォルトの名無しさん :2012/02/21(火) 00:54:44.67 .net libtool は実質的に *.so (ウインドウズで言う所の *.dll のようなもの)をビルドする書式を共通化するためのものだけど、 ./configure を生成する autoconf, automake は、システムのタイプを判断する作業から、プログラマーを開放してくれるから、使った方が便利。 面倒くさいのでもう343のように詳しくは書かないが、(どうせ誰かが書いてくれるだろう。) 例えば、引数で受け取った画像を拡大縮小して、ファイル出力するツール|ライブラリを書く場合。 画像処理は(たとえば単純にバイリニアだとして)、 画像をブロック毎に分割して処理を行えば、完全に並列処理できる類の問題だよな?(アムダールの法則の1/(F-(1-F))のFが非常に小さい状態) だからスレッドに分割して、多コアに割り当てて、一気に高速計算するべき。 この際に、無駄なスレッドを作ると、逆に速度が遅くなる。 例えば、プロセッサのコア数が4だとしたら、スレッドも4個にするのが最も効率が良い。(コア数が4なのにスレッドを8個とか作っても、無駄だし、スイッチングロスで逆に遅くなる) このプロセッサー数を、実行時に判断することもできるのだが、それだとビルド時の決め打ちによる強力な最適化を書くことができない。 そこで、定数としてビルド時にコア数を知っとくことは、性能を追求する場合において、とても有用。 そこで、ビルド時にコア数を知りたいという要求が出てくるのだが、この「コア数を知る」という方法が、OSやCPUなどによって、それぞれ全然変わってくる。 これに全パターン対応するMakefileを書くのは、非常に負担となるので、ここを共通の書式で自動化してくれるのが autoconf の役割。 たとえばプロセッサー数ならば configure.in に AX_COUNT_CPUS と一行書いておけば、(もし指定してあれば)config.hに #define CPU_COUNT 4 等のようにマクロ定義される。これを利用してコードをを最適化できる。 (AX_COUNT_CPUSのm4マクロによって(autoconf archive要インストール)) CPU数に限らず、ベクトル演算のサポートの有無など、事前に調べて最適化に有用な情報を、容易に得る手段として、autoconfは非常に便利なので使った方がいい。 autoconfで実行環境情報を積極的に得るようにすれば、プログラム最適化の幅が広がるはず。
354 :デフォルトの名無しさん :2012/02/21(火) 01:02:28.82 .net thx!!
355 :デフォルトの名無しさん :2012/02/21(火) 01:10:16.32 .net ちなみにCMakeはもっとスゴイぞ!
356 :デフォルトの名無しさん :2012/02/21(火) 01:26:53.76 .net >>353 要するに、コア2のプロセッサをコア4のプロセッサへ換装しても、 それをautoconfが自動認識してくれるから便利ってこと?
357 :デフォルトの名無しさん :2012/02/21(火) 01:31:38.51 .net バカなautotools checking ... これが世界中でどれだけ行われてるんだ? その電力で何人のアフリカの子供が… システムライブラリなんか一回スキャンしてデータベース作ればOK。 考えた奴死ね。
358 :デフォルトの名無しさん :2012/02/21(火) 01:35:41.52 .net >>353 > たとえばプロセッサー数ならば configure.in に AX_COUNT_CPUS と一行書いておけば、(もし指定してあれば)config.hに #define CPU_COUNT 4 等のようにマクロ定義される。これを利用してコードをを最適化できる。 autoconfが対応しているOS場合の事。対応していないときに変更箇所を探して、m4のマニュアル読みながらm4マクロ書いて… Makefileに NUM_CORE=4 5秒で終わるわ。
359 :デフォルトの名無しさん :2012/02/21(火) 01:41:05.56 .net もうちょっとましな指摘は書けないのかよw
360 :デフォルトの名無しさん :2012/02/21(火) 02:55:02.78 .net >>357 おまい頭良いな
361 :デフォルトの名無しさん :2012/02/21(火) 07:59:40.53 .net アフリカの子供が不幸なのはアフリカの大人がDQNだからだよ 日本で言えば、赤ん坊を車に放置してパチンコ台の前に陣取る親みたいなものだ
362 :デフォルトの名無しさん :2012/02/21(火) 09:06:59.31 .net >>357 話はそんな簡単じゃないみたいだぞ。 例えばソフトをビルドするときにある関数が期待した振る舞い(フレーバー)で利用可能 かどうか、はシステムライブラリにそれがあるかだけでは決まらない(例えばコンパイラ のオプション等)ので。
363 :デフォルトの名無しさん :2012/02/21(火) 09:17:44.19 .net >>362 configureが検出したものをオプションと一緒に記録しておけばいいんじゃない? コンパイルオプションで挙動が変わる関数くらい数えられる程度では? 若しくは、そういった特殊な挙動を要求するものだけはDBを使わないようにすればいい configureごとに全く同じ処理をキャッシュできればそれだけで随分速くなる
364 :デフォルトの名無しさん :2012/02/21(火) 09:41:37.47 .net オプションに利用可能性が依存するって、どの規格(c90, c99, ...)を使うかくらい。 その以外で振る舞いや有無が変わる関数なんて使ってられんわ。使う価値ないね。 もしあるなら、そんなクズな関数を捨てれば何人の餓えているアフリカの子供が…
365 :デフォルトの名無しさん :2012/02/21(火) 10:15:13.00 .net 過度の汎用性を求めて(といっても所詮Unix限定だけど)汚い設定ファイル地獄 便利さも体感できないって、なんだか一昔前のJava + J2SE + メタフレームワーク地獄 みたい m4とXMLの違いがあるけどね 今更m4なんて弄りたがるの変態ぐらいでしょ それはそうと、.laや.pcにフルパス埋め込まれるのは何で? あれrelocateしにくいから嫌なんだけど .aや.soにはそんなもん埋め込まれないのに
366 :デフォルトの名無しさん :2012/02/21(火) 10:35:54.54 .net >>364 きみがパソコンすてればアフリカの・・・
367 :デフォルトの名無しさん :2012/02/21(火) 11:12:28.96 .net さすがに古臭い感じはする。 こんだけ広まっちゃうと今さらどうこうするのは難しいだろうけど。
368 :デフォルトの名無しさん :2012/02/21(火) 13:39:46.81 .net >>363 >>364 いや、コンパイラのオプションでかなり変わるっしょ。 そういうので苦労したことない? 簡単に思いつくのでも、マクロ定義でいろんな挙動が変わりうるし、 ヘッダーやライブラリをどういう順序/場所で検索するかが変わったり、 生成するコードやハードウェア依存の機能を使うかが違ったり。 で、コンパイラのオプションはソフト毎に違うし、オプション同士は独立でもないし、 グローバルなconfigのキャッシュをうまく管理するのは自明じゃないと思うのだが。
369 :デフォルトの名無しさん :2012/02/21(火) 15:03:36.68 .net >>361 サムエル・ワンジルさんの事件の真相なんか見ると まったく仰る通りとしか思えない http://bl og.liv edo or.jp/dom esaka/archives/1337215.html
370 :デフォルトの名無しさん :2012/02/21(火) 17:40:15.55 .net >>368 何を心配しているか分からないが、それを調べるためのツールがautoconfだろ? 例えそっちが言うように得られる結果が複雑になっても、それは調べた結果だ 難しく考え過ぎているようだけど、ようは>>353 みたいに「CPUの数はいくつ?」という問いとその答えを キャッシュしておけば速くなるって話で、全く同じオプションで挙動が変わることがないなら、そうした心配はないはずだ
371 :デフォルトの名無しさん :2012/02/21(火) 18:15:57.69 .net >>368 規格に関するオプション以外であるなら実例だせば議論が進むぞ。 「ある」だけ連呼すんなよ。 それが人間が管理できる以上の組み合わせならautoconfは意味があるわけだし、 数個なら意味なしという事だ。
372 :デフォルトの名無しさん :2012/02/22(水) 06:42:18.85 .net >>370 >>371 話が通じてないならいいよ。
373 :デフォルトの名無しさん :2012/02/22(水) 09:59:24.55 .net > いや、コンパイラのオプションでかなり変わるっしょ。 つまり、これの実例は挙げられないという事だね。 > 話が通じてないならいいよ。 捨て台詞がみっとも茄子。
374 :デフォルトの名無しさん :2012/02/22(水) 15:20:49.78 .net いい加減にして
375 :デフォルトの名無しさん :2012/02/23(木) 18:46:17.26 .net 雲丹板って人減ってます?
376 :デフォルトの名無しさん :2012/02/23(木) 19:45:24.15 .net >>337 -version-info CURRENT:REVISION:AGE と指示したら、標準的なUNIX系環境では、 libfoo.so.CURRENT-AGE.AGE.REVISION となるべきだよね。ところがlibtoolは、FreeBSD,NetBSD,HP-UXなどでは、 libfoo.so.CURRENT.AGE.REVISION というバージョン番号を振ってしまう。
377 :デフォルトの名無しさん :2012/02/23(木) 19:57:38.09 .net >>375 2ch全体が絶滅危惧種
378 :デフォルトの名無しさん :2012/02/24(金) 10:00:26.97 .net 非同期シグナルセーフなprintf誰か作ってー
379 :デフォルトの名無しさん :2012/02/24(金) 10:17:07.20 .net そういえば、memcpyは非同期シグナルセーフじゃ無いんだな
380 :デフォルトの名無しさん :2012/02/24(金) 16:59:31.03 .net どなたか教えて頂けたらなと思います。 多分Linuxだけっぽいのですが、TCPでローカルホストにあるポートにconnect()するとして、 自分自身のソケットに接続できることに気づきました。 以下、pythonでですが、 from socket import * s = socket() s.bind(('', 5656)) s.connect(('localhost', 5656)) ↑connect出来てしまう。netstatでみるとESTABLISHEDが 1つだけあるような状況になります。 明示的にbindしてなくても、たまたま自分自身が開いた エフェメラルポートにも接続できちゃうみたいです。 感覚的には間違った動作に思えますが、そういう仕様なのでしょうか。
381 :デフォルトの名無しさん :2012/02/24(金) 17:17:37.05 .net TCPの接続は<src IP, src port, dst IP, dst port>の四つ組で識別できる。 たまたま1と3、2と4が一緒でも特に支障はない。 プロトコル状態遷移の表の作り方によっては禁止もできるが。
382 :デフォルトの名無しさん :2012/02/24(金) 17:33:05.37 .net お前ウソついてない? listenしてないのにconnectできちゃうの? pythonのsocketは知らんけど、勝手にlistenする? > from socket import * > s = socket() > s.bind(('', 5656)) > s.connect(('localhost', 5656))
383 :デフォルトの名無しさん :2012/02/24(金) 17:55:14.86 .net >>382 >>380 がどういうことかはよくわかってないけれど、一般論として、 pythonのlisten()はBSD socketモデルのlisten()だから、backlog長の設定です。 TCPプロトコルの状態遷移のLISTEN状態への遷移を行う関数ではありません。 それからTCPの接続を確立するには、accept()しなくてもよくて、 両側からconnect()してもOKです。 どっちもよく間違う人がいるんだけれども。
384 :デフォルトの名無しさん :2012/02/24(金) 18:57:43.25 .net >>383 > pythonのlisten()はBSD socketモデルのlisten()だから、backlog長の設定です。 > TCPプロトコルの状態遷移のLISTEN状態への遷移を行う関数ではありません。 意味が分からないなあ。pythonでもCでもlisten()しなくてもconnect受け入れられると言っている? それともpythonだけ? ↓を実行するとLinuxではリストにされず、FreeBSDではClosedなので、 とてもconnectできるとは思えないんだけど。 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main() { int s; struct sockaddr_in sin = {.sin_port = htons(5599)}; if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) perror("socket"), exit(1); if (bind(s, (struct sockaddr)&sin, sizeof(sin)) < 0) perror("bind"), exit(1); system("netstat -an"); }
385 :デフォルトの名無しさん :2012/02/24(金) 20:03:31.13 .net カマー本とかスティーブンス本とか、 ソケットプログラミングFAQに詳しく書いてあるから読んでみてねん。
386 :380 :2012/02/24(金) 20:19:31.29 .net >>381 >>383 >>385 ありがとうございます、勉強になります。 仕様上はありってところは驚きです。 スティーブンスの詳解TCP/IPとUNIXネットワークプログラミングならありますので、読み直してみます。 試しにバーチャルで2つLinuxマシン用意して、 お互いにconnectしあうようにしたら繋がってしまいました。 SYN_SENTを維持しなきゃダメみたいなんで、 RSTが届かないようにフィルタする必要がありましたけど。 ちなみにpythonじゃなくても同じですよ。 Cで書くとわかりづらいかな?と思ったのでpythonで書きました。 ってことは、LinuxでTCPを使うような時って、 エフェメラルポートを受信ポートに使うのって危険? 予期せず自分自身のソケットに接続してしまうかもしれない。 まあ、どっちかと言うと先にポートが使われてて開けられなかった、とかの方がありそうですけどね。
387 :デフォルトの名無しさん :2012/02/24(金) 21:48:04.19 .net 確かネットワークプログラミングスレってのがあったと思うけど、それはまあいいとして、 ソケットプログラミングのFAQは必読。すごくいいFAQ。 プログラミング系FAQのベストの一つなのは間違いない。 以下は日本語訳。 http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html http://www.kt.rim.or.jp/~ksk/wskfaq-ja/
388 :380 :2012/02/25(土) 03:39:23.24 .net >>383 >それからTCPの接続を確立するには、accept()しなくてもよくて、 >両側からconnect()してもOKです。 だんだん分ってきました。こんな感じですか? ・connectすると、SYNを送信して状態"SYN_SENT" ・相手から(あるいは自分の)SYNを受信して、状態"SYN_RECV"でACK送信 ・ACKを受信して、状態"ESTABLISHED" SYN_RECVなんて完全に忘れてました・・。 でもWindowsやSolaris10(x86)で同じ事は試しても、この通りにいきませんでした。 かならずしもRFCに従う必要がない? >pythonのlisten()はBSD socketモデルのlisten()だから、backlog長の設定です。 >TCPプロトコルの状態遷移のLISTEN状態への遷移を行う関数ではありません。 こっちはまだよく分りません。 LISTENになるのに別の手段が存在するということでしょうか?
389 :デフォルトの名無しさん :2012/02/25(土) 12:34:32.23 .net 一応ネットワークプログラミングスレで聞いた方がよさそうだと言っとく http://toro.2ch.net/test/read.cgi/tech/1293284816/
390 :380 :2012/02/26(日) 03:18:54.63 .net >>387 >>389 そうですね。ちょっと調べた後、そっちのスレで質問してみます。 皆さんありがとうございました。
391 :デフォルトの名無しさん :2012/03/10(土) 20:50:36.82 .net 単純なネタで恐縮ですが、errnoは並列化プログラミングに対して安全なのでしょうか? 主要な並列化手法の実装だけでもかまわないので、ご存知の方はコメントください。 また、チェック対象となるシステムコールやライブラリ関数の直前にいちいちerrno=0を 置くのはいまいちいけていない気がするのですが、もっとかっこいい方法はないですか?
392 :デフォルトの名無しさん :2012/03/10(土) 21:38:45.84 .net 1 スレッドライブラリが用意されている環境ならば、 #define errno (* __error()) のようにスレッド毎の変数になっているので安全。 2 システムコールやライブラリでエラーが発生したときに errnoが 更新させる仕様なので、コールする前にerrnoを クリアする必要はない。しかしerrnoを比較するとこでエ ラー判定をしてはいけない。システムコールならば戻り値 が負、ライブラリならばその仕様に従いエラー判定を行う。
393 :デフォルトの名無しさん :2012/03/10(土) 21:41:01.34 .net >>391 > errno is thread-local; setting it in one thread does not affect its value in any other thread. うちのLinuxのman errnoから引用。どこかで定められているはずだけど、どの規格か知らない
394 :デフォルトの名無しさん :2012/03/10(土) 21:52:08.51 .net >>391 posix threadならTLSになってる gccなら -pthreadとか
395 :デフォルトの名無しさん :2012/03/10(土) 21:56:50.40 .net >>392 >>393 >>394 どうもです 特に、>>392 の2は、ああそういうことかとストンと腑に落ちました
396 :デフォルトの名無しさん :2012/03/11(日) 00:47:10.17 .net どもです(´・ω・`)
397 :デフォルトの名無しさん :2012/03/11(日) 03:03:42.12 .net >>392 > スレッド毎の変数 スレッドローカルストレージという言い方が正確だと思います。
398 :デフォルトの名無しさん :2012/03/11(日) 07:12:41.24 .net >>397 日本語でおk
399 :デフォルトの名無しさん :2012/03/11(日) 07:59:41.37 .net >>397 例示したマクロだといわゆるTLSなのか、全く別な方法なのか わからないので、あのような表記にした。
400 :デフォルトの名無しさん :2012/03/11(日) 21:40:09.08 .net おねがいします。 親子関係にないプロセス(PID既知)の生存を確認するための通常の手法はなんですか?
401 :デフォルトの名無しさん :2012/03/11(日) 21:48:39.59 .net kill(pid, 0);
402 :デフォルトの名無しさん :2012/03/11(日) 22:47:06.43 .net ありがとうございます! ・・・というか、一度はmanに目を通しているから、間違いなく読んでいるはずなのだが・・・ 恥をかかないと覚えないということか・・・
403 :デフォルトの名無しさん :2012/03/12(月) 00:05:33.16 .net >>402 全部暗記できちゃうほうが異常者ですよ。
404 :デフォルトの名無しさん :2012/03/12(月) 00:08:19.11 .net /procという手もある。(OSによっては)
405 :デフォルトの名無しさん :2012/03/14(水) 02:39:31.61 .net >>403 全部暗記できるなら、その労力を他に向けるべきだな。 そして簡単に全部暗記する能力があるならば、manなど不要てことで。(ry
406 :デフォルトの名無しさん :2012/03/14(水) 10:37:43.36 .net >>405 頭が弱いのか? そのぐらい覚えられなくてどうする。余裕だろwwww
407 :デフォルトの名無しさん :2012/03/14(水) 12:12:14.56 .net >>405 中身はいいけど、目次の暗記は必須だろ
408 :デフォルトの名無しさん :2012/03/14(水) 12:13:49.31 .net >>405 「どっかで見たなー」 っていう記憶がもっとも大事なんだよ。
409 :デフォルトの名無しさん :2012/03/15(木) 16:20:19.04 .net 「もっとも大事」はどうなんだろう?
410 :デフォルトの名無しさん :2012/03/16(金) 01:18:56.16 .net 教えてください ftp://ftp.irisa.fr/pub/OpenBSD/src/sbin/init/init.c のプログラムなんですが、 どうやって/etc/rcを実行するのかがいまいちわかりません。 runcom関数内の execv(_PATH_BSHELL, argv); で実行しているのではないかなと思うんですが、 main関数内の、 while ((c = getopt(argc, argv, "sf")) != -1) switch (c) { case 's': requested_transition = single_user; break; .... } でrequested_transitionにsingle_userが代入される。 transition関数を経由して、single_user関数に入る。 までは、何となくわかるんですが、 single_user関数内でforkして、子プロセスで argv[0] = name; argv[1] = NULL; setenv("PATH", _PATH_STDPATH, 1); execv(shell, argv); シェルを起動する。 そこからどうやって、runcom関数に入るのかわかりませんでした。 教えて頂けないでしょうか?
411 :デフォルトの名無しさん :2012/03/16(金) 01:36:39.64 .net 状態名の関数は全部最後に関数を返してるじゃん? それがカーネルが次に移る状態なのよ。 その状態で、実行すべき処理を記述してある関数を、 状態そのものの代わりにしている。 void transition(state_t s) { for (;;) s = (state_t) (*s)(); } だからこれが状態遷移マシンになるわけ。 requested_transitionは引数とか、シグナルとか、 上の関数を使った状態遷移からは逸脱するものを扱うためにある。
412 :410 :2012/03/17(土) 06:18:23.32 .net すいません、もう少し質問させてください。 single_user関数内でforkして子プロセスで argv[0] = name; argv[1] = NULL; setenv("PATH", _PATH_STDPATH, 1); execv(shell, argv); 特に引数なしでシェルを起動していますよね。 んで、親プロセスの requested_transition = 0; do { if ((wpid = waitpid(-1, &status, WUNTRACED)) != -1) collect_child(wpid); if (wpid == -1) { if (errno == EINTR) continue; warning("wait for single-user shell failed: %m; restarting"); return (state_func_t) single_user; } if (wpid == pid && WIFSTOPPED(status)) { warning("init: shell stopped, restarting¥n"); kill(pid, SIGCONT); wpid = -1; } } while (wpid != pid && !requested_transition); で、子プロセスの面倒を見る処理を行っていると思うんですが、この処理抜けないとruncom関数に入れないですよね? ただ起動させただけの子プロセスのシェルが、 if ((wpid = waitpid(-1, &status, WUNTRACED)) != -1) collect_child(wpid); どうやってこの処理を抜けるんでしょうか?子プロセスのシェルはどこからSIGSTOP受け取るんでしょうか? それとも、起動させた子プロセスのシェルが/etc/rcを実行するんでしょうか? その場合、/etc/rcの場所が分からないと思うんですけれど...
413 :デフォルトの名無しさん :2012/03/17(土) 11:03:10.55 .net シングルユーザーシェルのプロセスIDがpidで、 do { } while (wpid != pid && !requested_transition); で、親プロセス(init)はシングルユーザーシェルの終了を待っている。 (シングルユーザーシェルはインタラクティブシェル) > 子プロセスのシェルはどこからSIGSTOP受け取るんでしょうか? 親がシェルならsuspendして親シェルに戻るけど、親がシェルじゃないから、 シングルユーザーシェルからkill -STOP $$とかやったら固まるでしょ。 それを避けるためにリスタートする。
414 :デフォルトの名無しさん :2012/03/17(土) 16:04:37.77 .net >>412 シングルユーザモードがなにか理解できてる?
415 :デフォルトの名無しさん :2012/03/17(土) 16:08:03.24 .net >>413 シングルユーザモードの典型的なセッションは、 1. シングルユーザモード指定して起動 2. シングルユーザモードのシェルが動く。動いているサービスはほぼ皆無。 3. fsckしたり、パスワード変更したり、criticalなファイル直したり。 4. Ctrl-Dでシングルユーザモードのシェル終了。(exitコマンドでも) 5. マルチユーザーモードへ。(最近のUNIXは起動シーケンスが複雑で、再起動したいケースもままある)
416 :410 :2012/03/18(日) 04:28:21.50 .net 貴重なお時間頂いて、申し訳ないです。 /etc/rcって、マルチユーザーモードで起動するときに読まれますよね。 init.c内では、runcom関数でその処理を行っていますよね。 で、main関数内の while ((c = getopt(argc, argv, "sf")) != -1) switch (c) { を見て、 「initの引数は、sとfでf(FASTBOOT)は機能的に実装されていないようだし、 single_user関数内で、runcom関数に飛ぶのかなぁ」と思ったんですよね。 main->single_user->runcomの流れが勝手に(自動的に)行われるんじゃないかなと推測したんです。 でも、single_user関数を見ても子プロセスでシェルを起動させて、親プロセスは待つだけで、 人間が操作をしないと、次の処理に進むようには思えない。 do { } while (wpid != pid && !requested_transition); の処理ですね。 main->single_user(オペレーション終了待ち)->runcomになっているんですよね。 で、runcom関数はどうやって呼ばれるのかなと思ったんです。 質問が悪かったんです。すいません。質問すべきだったのは、 カーネル(bootローダー)からinitが呼ばれるときって、シングルユーザーモードでないときの オプションは'f'なんですか? です。
417 :410 :2012/03/18(日) 05:35:51.09 .net すいません。 init_main.cを読んでちょっと理解できました。 flagsp = flags; *flagsp++ = '-'; options = 0; if (boothowto & RB_SINGLE) { *flagsp++ = 's'; options = 1; } #ifdef notyet if (boothowto & RB_FASTBOOT) { *flagsp++ = 'f'; options = 1; } #endif /* * Move out the flags (arg 1), if necessary. */ if (options != 0) { *flagsp++ = '¥0'; i = flagsp - flags; #ifdef DEBUG printf("init: copying out flags `%s' %d¥n", flags, i); #endif (void)copyout((caddr_t)flags, (caddr_t)(ucp -= i), i); arg1 = ucp; } つまり、何も指定しない場合は'-'が答えなんですね。
418 :410 :2012/03/18(日) 05:47:21.65 .net >つまり、何も指定しない場合は'-'が答えなんですね。 すいません。何も指定しない場合は何もないが正解でした。 suwordなんて関数、初めて見ました。
419 :デフォルトの名無しさん :2012/03/18(日) 22:40:11.06 .net たしかに「どっかで見たなー」は大事だけど そのうち「こんなのがあるはずだ」になって 無いものを探して時間を無駄にすることになる
420 :デフォルトの名無しさん :2012/03/18(日) 22:49:00.71 .net man 9 store man 9 fetch man 9 copy
421 :デフォルトの名無しさん :2012/03/19(月) 08:17:04.29 .net m9(^Д^)プギャー
422 :デフォルトの名無しさん :2012/03/19(月) 09:55:12.39 .net >>419 30分探して見つからなかったら、「無い」よ
423 :デフォルトの名無しさん :2012/03/19(月) 09:59:41.84 .net あったはずのものが見つからないと気持ち悪くて他の事が出来ない。 多分精神疾患なんだろう。
424 :デフォルトの名無しさん :2012/03/19(月) 10:13:03.18 .net あったはずのものが見つからない・・・・ 夢・・・とか
425 :デフォルトの名無しさん :2012/03/19(月) 10:15:31.01 .net >>424 呪いが解けてよかったな
426 :デフォルトの名無しさん :2012/03/19(月) 10:36:22.33 .net >>424 あるはずの現実を見ようとしていない状態より遥かにマシだ
427 :オカルトの世界にようこそ :2012/03/19(月) 10:46:03.46 .net 存在しないものをプログラミングするとか、 ゴーストを実装するようなもの。
428 :デフォルトの名無しさん :2012/03/19(月) 11:31:33.10 .net まさにWizard
429 :デフォルトの名無しさん :2012/03/19(月) 11:49:08.41 .net どどど同邸ちゃうわ・・・!
430 :デフォルトの名無しさん :2012/03/19(月) 12:07:52.39 .net 切迫していなければ 別に回り道したっていいと思うけど 最終的に正しい答えを導き出しているんだし そのぶん、ソースも読んだだろうし
431 :デフォルトの名無しさん :2012/03/19(月) 13:03:50.05 .net >>427 つまり応答しないデーモンプログラムとか、 起動しているはずなのにプロセス一覧にでないとか? 無数にプロセスだけを起動しつづけるアプリとか?
432 :デフォルトの名無しさん :2012/03/19(月) 14:19:30.88 .net ゴーストもいればゾンビもいる UNIX界はほんまホラーやで
433 :デフォルトの名無しさん :2012/03/19(月) 14:30:39.17 .net >>431 伺かしか思い浮かばんかった 実装する気ないけど、フレームバッファが使えるOSなら仮想コンソールの背景に立たせることもできるのかな
434 :デフォルトの名無しさん :2012/03/19(月) 14:52:04.58 .net 仮想コンソールの窓越しにしか見えないスタンドのような存在か
435 :デフォルトの名無しさん :2012/03/19(月) 16:05:39.14 .net みなし児もいる悲しい街なのですよ。
436 :デフォルトの名無しさん :2012/03/19(月) 18:17:26.17 .net お前ら、非技術的な話題だと食いつき良いな。
437 :デフォルトの名無しさん :2012/03/19(月) 18:18:17.58 .net 技術的な話題も好物ですよ
438 :営利利用に関するLR審議中@詳細は自治スレへ :2012/03/31(土) 00:06:18.32 .net 物欲を満足しつつ、ちょっとしたUNIXプログラミングの実験&iPad用アプリの開発を こなせるマシンを購入検討したいのですが、現行機種で何かオススメはありますか?
439 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/01(日) 19:49:49.18 .net Mac板で相談しなよ。
440 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/01(日) 19:56:56.10 .net いや、UNIXプログラミングができるからこそのMac選択で、 似たようなことを考えた先達がいると思うからこそここでのQです ぶっちゃけ、Mac板でまともな回答が帰ってくるとは思えないし
441 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/02(月) 02:54:08.78 .net >>440 MacBook Airの一番安いのでスタバでドヤ顔しなさい
442 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/02(月) 07:13:56.20 .net 昨年、台湾の雑誌『遠見』が20歳以上の1000人にアンケートしたところ 「一番尊敬する国」「一番移住したい国」などの筆頭に日本が挙げられた そうだ。 そういえば以前、台湾に旅行をした際に、現地で知り合った人に好意的に受け 入れられ、台湾は「親日」なんだと実感したことがある。 でも、どうして台湾は親日なのだろう。 産能短期大学講師で『日本に恋した台湾人』などの著書で知られる謝 雅梅さん にお話を伺った。 「やはり歴史背景は大きいですね。日本統治時代(1895〜1945年)、 その目的はどうであれ、日本が台湾のインフラを整備したことは今でも高く 評価されてます。72歳になる私の父は、小学校4年生まで日本の教育を受け ましたが、不思議と日本人に立ち居振る舞いも似てくるんですね。いわゆる 日本の頑固親父と一緒(笑)」 では、65年生まれの謝さんや若い世代にも親日派が多いのはなぜ? 「私の世代の場合、反日教育も受けましたが、父の世代からいい印象も聞いて います。日本のテレビ番組や雑誌なども昔からあって、よく見てました。今、 20代くらいの若者には、日本の音楽やファッション、マンガやゲームなどの サブカルチャーが人気です。彼らの世代になると、もう日本との歴史をよく 知らないんですよ。台湾も、日本のようにアメリカの影響は大きいんですが、 やはり同じアジアの日本文化の方が肌に合う。これは一過性の流行ではなく、 親日感情は昔から繋がっているんです」(同) http://headlines.yahoo.co.jp/hl?a=20070802-00000002-rec_r-int
443 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/05(木) 16:47:06.60 .net ライブラリーを利用せずにカーネルを直接呼び出すアプリを作りたいんですが 参考にするにはどんな検索ワードで探せばいいでしょうか?
444 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/05(木) 16:59:55.74 .net linux システムコール アセンブラ
445 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/05(木) 17:26:19.45 .net >>443 glibcだとこの辺。 sysdeps/mach/i386/syscall.S http://sourceware.org/git/?p=glibc.git;a=tree;f=sysdeps/mach/i386;h=8a5e953b538c139ffa7fcd4d848dd0eb356e631b;hb=c0da14cdda1fa552262ce3624156194eef43e973 後はsyscallをキーワードにsysdepsの下を彷徨えば、 返り値やsignal絡みのカーネルインターフェースがどうなってるかとかも分かる。
446 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/05(木) 17:28:21.87 .net この頃から基本的に変わってないので読んでみるのも楽しいかも。 http://www.amazon.co.jp/Lions%E2%80%99-Commentary-UNIX-Ascii-books/dp/4756118445/
447 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/06(金) 18:23:12.15 .net >>445 カーネルによって違うんだからこの情報では不親切では。 それにあえてマイナーなのを紹介しなくても。 >>446 PDP-11とx86が基本的に変わらないというのですね、わかりま... せん。
448 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/06(金) 18:27:09.49 .net strftimeのフォーマットに則ってるかどうかを 格好よく調べる方法ない?
449 :営利利用に関するLR審議中@詳細は自治スレへ :2012/04/06(金) 22:19:53.98 .net >>443 システムコールの実装 in Linuxカーネルインターナル
450 :デフォルトの名無しさん :2012/04/12(木) 09:27:46.65 .net XLIBに出てくるATOMって何ですか?
451 :デフォルトの名無しさん :2012/04/25(水) 19:42:17.01 .net COMのアウトプロセスサーバーみたいに プロセス間で一つのオブジェクトを共有し、 一方のプロセスからもう一方のプロセスを制御する方法はありますか? 単に値を共有するだけならpipeやmmapを 使えばいいんでしょうが面倒です。
452 :デフォルトの名無しさん :2012/04/26(木) 10:47:00.87 .net socketとかsignalで通信するのは駄目なの?
453 :デフォルトの名無しさん :2012/04/26(木) 12:40:04.59 .net mmapすら面倒ならマルチスレッドで作るとか
454 :デフォルトの名無しさん :2012/04/26(木) 23:12:18.99 .net CPU、GPUを利用(プログラム)するには? http://togetter.com/li/293863
455 :デフォルトの名無しさん :2012/04/26(木) 23:33:13.30 .net >>451 dbus使えば?
456 :デフォルトの名無しさん :2012/04/28(土) 20:54:43.28 .net sigactionについての質問です。 古いソースではsigvecを使っていて、ちゃんとそれが動いているんだけど 私が使っているsignal.hヘッダの中にはsigvecが定義されていません。 どうして動くんでしょうか
457 :デフォルトの名無しさん :2012/04/29(日) 03:02:46.33 .net obsoleteだから、特に指定しないとcompileは出来ないけど、linkは出来るようになっているんでしょう。
458 :デフォルトの名無しさん :2012/05/01(火) 15:44:20.25 .net >>452 >>453 >>455 アウトプロセスサーバーみたいに、直接(擬似的)他プロセスの メンバー関数呼んで、ポインターやら値を渡すってのは無理そうですね。
459 :デフォルトの名無しさん :2012/05/01(火) 15:54:40.31 .net シェアードメモリ?
460 :デフォルトの名無しさん :2012/05/01(火) 16:02:34.37 .net 分散オブジェクト?
461 :デフォルトの名無しさん :2012/05/01(火) 16:07:08.30 .net 単にExcelの制御みたいな感じで、プロセスとか接続気にせず操作したいだけです
462 :デフォルトの名無しさん :2012/05/01(火) 16:30:28.03 .net こういうのかなぁ ttp://ja.wikipedia.org/wiki/Open_Network_Computing_Remote_Procedure_Call
463 :デフォルトの名無しさん :2012/05/01(火) 16:44:26.49 .net >>462 ローカルプロシージャコールができて、引数からオブジェクトを渡せればいいので そこまでは求めてないです。
464 :デフォルトの名無しさん :2012/05/01(火) 23:29:29.48 .net こんばんは。 DJBのqmailとかdaemontoolsのソースを見てて疑問に思いました。 DJBの str_*** のような文字列に対する関数って for(;;)の中で1文字ごとの処理を連続4回書いてあるのですが、 これって何かメリットがあるのでしょうか? この人の書くことだから、何か意味はありそうに思えるのだけども。 /* 例えばDJBのstr_len.c */ unsigned int str_len(const char *s) { const char *t; t = s; for (;;) { if (!*t) return t - s; ++t; if (!*t) return t - s; ++t; if (!*t) return t - s; ++t; if (!*t) return t - s; ++t; } } ↓↓↓これでいいように思える↓↓↓ unsigned int str_len(const char *s) { const char *t; t = s; for (;;) { if (!*t) return t - s; ++t; } }
465 :デフォルトの名無しさん :2012/05/02(水) 04:35:53.91 .net つ loop unrolling
466 :464 :2012/05/02(水) 12:10:30.82 .net >>465 loop unrollingっての知らなかったです。 ひとつ賢くなりました! Wikipedia: “毎回の繰り返しごとに発生する「ループの終了」条件のテストを 減少させる(もしくはなくす)事によって、実行速度を向上させる” ・・ですね。 でも、「ループの終了」条件のテストをforにいれず、 結局1行ごとに4行毎回判定してるので、なんとなく関係ないような気が・・ あと一応、測定してみましたが、4行に分けるより、 1行にまとめたほうがわずかばかり速そうです。 ※VMware上 Linux x86_64 gcc4.4.6 -O3 で、100000000回ループを30回測定 (なんでそういう結果が出たかは調べていません) それとも、やっぱり状況によっては 4行書いたほうが最適化とかかかって 速くなったりするものなのでしょうか。
467 :デフォルトの名無しさん :2012/05/02(水) 15:45:45.03 .net ていうか、djbのスタイルを参考にするのはやめれ。 根性で標準ライブラリを使わん、とか、癖があり過ぎる。
468 :デフォルトの名無しさん :2012/05/02(水) 15:55:45.32 .net >>466 速度に関する最適化は、普通にコーディングした後に、どうしても速度的な要件を満たせてないときに 限って、ボトルネックがどこか「実際に測定して場所を特定」してから行うもの。 数nsレベルの調整なんかしなくていい。
469 :464 :2012/05/02(水) 16:43:21.92 .net もちろんスタイルをまねする気も、速度を気にしてるわけではないですよ。 普通の人から見たら、ただの縛りプレイにしかみえないですし。 ただ、偏執狂なんていわれるほどの人だから、 この意味無いように見えるコードも何かあるのかな、と。 daemontoolsはよく使いますので、 コードも見てみようと思ったのが発端です。
470 :デフォルトの名無しさん :2012/05/02(水) 18:07:50.56 .net 本当に意味わかんないなこれ。 4bytes コピーして最適化したつもりが気が変わって無理矢理戻したとか、いや違うな。 素直に strlen() 使った方が最適化してくれていいのになあ。
471 :デフォルトの名無しさん :2012/05/02(水) 18:49:53.19 .net どうせ最適化がかかるだろうし無駄な書き方ならライセンスで面倒なことが起きないとか?
472 :デフォルトの名無しさん :2012/05/02(水) 19:01:32.57 .net >>466 >でも、「ループの終了」条件のテストをforにいれず、 >結局1行ごとに4行毎回判定してるので、なんとなく関係ないような気が・・ そう思う。さらにループ内でtの値が変化するから並列化も期待できないし。 ちなみに>>445 の人を真似して(syscallでとんでもないものを紹介してたのはアレだが) glibcのstrlenを見ると、 http://sourceware.org/git/?p=glibc.git;a=blob_plain;f=string/strlen.c;hb=c0da14cdda1fa552262ce3624156194eef43e973 まずlong intのサイズ毎にビット演算して0バイトがないか調べて(ちょっとトリッキー)、 もしあったら詳細に調べるみたいな感じのことをしてる。 インテルならXMMレジスタ(16バイト)を使うとさらに効果的。https://gist.github.com/77178
473 :デフォルトの名無しさん :2012/05/02(水) 19:07:11.52 .net いずれにしろ、その部分が、全体の90%の時間を食ってる、10%のコードだ、 ということがわかってからでいいことだな。
474 :464 :2012/05/02(水) 21:40:41.21 .net 結局なにがしたいんだか分からないなー。 >>472 >まずlong intのサイズ毎にビット演算して0バイトがないか調べて(ちょっとトリッキー)、 >もしあったら詳細に調べるみたいな感じのことをしてる。 >インテルならXMMレジスタ(16バイト)を使うとさらに効果的。https://gist.github.com/77178 glibcのstrlen、すごいことしてるんですね。 特にビット演算のマジックナンバーが全然意味分かりませんでしたが、 説明をググったら解説があって、なんとなく分かったような気にはなりました。 なんすか、よく思いつくなと。 もう一個のアセンブラのほうは、 ニーモニックが全然分かってないので辛くて読んでませんが、 とにかく、案外、工夫のしがいがあるものなんですね。
475 :デフォルトの名無しさん :2012/05/05(土) 16:38:05.82 .net 非分岐時のみ投機実行のあるRISC系のCPUなら4行展開して意味ありそう。 けどCPUのアーキテクチャにベタベタに依存するコードだし、 遅延スロット埋める投機実行はもっと高度になってるから活躍の場は殆ど無いだろうね。
476 :デフォルトの名無しさん :2012/06/01(金) 01:43:26.38 .net シェルスクリプトの質問なんですが、 いちいち別のサーバにログインしたりするのがめんどいので、 一つのシェルスクリプトで、 ローカルマシンとリモートマシンの実行結果を マージしたりする仕組みって無いんですかね? #!/bin/sh num1=$HOME num2=@$HOME<-例えば@の後ろに何か処理を書くとその処理は設定されたリモートで実行される echo $num1<-ローカルの$HOME echo $num2<-リモートの$HOME
477 :デフォルトの名無しさん :2012/06/01(金) 11:26:58.67 .net man rsh man ssh
478 :デフォルトの名無しさん :2012/06/27(水) 18:49:44.31 .net Linuxで、ライブラリとかにデバッグ用のシンボルが付いてるかどうかって どうやったら調べられましたっけ。
479 :デフォルトの名無しさん :2012/06/27(水) 19:36:48.08 .net fileコマンドでstrippedと出るか出ないか、かな?
480 :デフォルトの名無しさん :2012/06/27(水) 19:48:46.08 .net nm -a
481 :デフォルトの名無しさん :2012/06/30(土) 07:43:47.53 .net ncursesのC++実装について分かる方教えてください
482 :481 :2012/06/30(土) 08:23:23.34 .net 自己解決しました
483 :デフォルトの名無しさん :2012/07/01(日) 22:18:43.78 .net マルチバイト文字を出力する方法がわかったのですが、 複雑なので他の方の参考になるように ここに書いておきます /* cc -o test test.c -lcursesw */ #define _XOPEN_SOURCE_EXTENDED #include <curses.h> #include <wchar.h> #include <locale.h> int main() { cchar_t ch; wchar_t wc[2] = L"あ"; setlocale(LC_ALL, ""); initscr(); setcchar(&ch, wc, 0, 0, NULL); add_wch(&ch); getch(); endwin(); return 0; }
484 :デフォルトの名無しさん :2012/07/10(火) 04:13:32.60 .net >>466 アセンブラに直せばわかるのに
485 :デフォルトの名無しさん :2012/07/10(火) 18:27:57.31 .net >>483 これじゃ駄目なの? $ cat test.c #include <stdio.h> int main() { puts("あ"); return 0; } $ gcc -o test test.c $ ./test あ
486 :デフォルトの名無しさん :2012/07/10(火) 18:44:35.03 .net >>485 cursesでマルチバイト文字をどう扱うかって話だよ
487 :デフォルトの名無しさん :2012/07/12(木) 01:18:29.66 .net 素直にncurcesw使えばいいんでないかと思う
488 :デフォルトの名無しさん :2012/07/25(水) 21:25:11.82 .net >>484 UNIX界隈にもアセンブリをアセンブラ呼ばわりする人が居るんだな
489 :デフォルトの名無しさん :2012/07/25(水) 21:35:35.20 .net アセンブリ言語
490 :デフォルトの名無しさん :2012/07/28(土) 08:38:10.33 .net 教えてください 静的ライブラリと、LD_PRELOADで指定された共有ライブラリでは、 静的ライブラリのほうが必ず先にロードされる、で正しいでしょうか?
491 :デフォルトの名無しさん :2012/07/28(土) 09:26:29.66 .net 静的ライブラリは、実行形式ファイルの生成時にロードされ、リンクされる。 共有ライブラリは、実行形式ファイルの実行時にロードされ、リンクされる。 ということで、タイミングとしては静的ライブラリの方が時間的に早いので その意味では正しいと思われます。
492 :デフォルトの名無しさん :2012/07/28(土) 10:10:31.58 .net LD_PRELOADで指定されてる方がタイミング的には先だな
493 :デフォルトの名無しさん :2012/07/28(土) 11:25:17.45 .net >>492 間違いです。
494 :デフォルトの名無しさん :2012/07/28(土) 11:31:01.01 .net くだらないこと気にしてないで重複しない命名規則をだな、
495 :デフォルトの名無しさん :2012/07/28(土) 11:35:58.83 .net デバッグ時に使いたいって話だよ
496 :デフォルトの名無しさん :2012/07/28(土) 11:37:06.57 .net >>494 経験浅い人は黙ってて
497 :デフォルトの名無しさん :2012/08/02(木) 19:32:15.27 .net pidの分からない複数の子プロセスにシグナルを送る方法はありますか?
498 :デフォルトの名無しさん :2012/08/02(木) 21:30:52.30 .net >>497 kill()関数でpidにゼロや負数を入れるといいらしい
499 :デフォルトの名無しさん :2012/08/02(木) 22:28:29.91 .net >>498 ありがとう,解決できました
500 :デフォルトの名無しさん :2012/09/17(月) 22:19:03.43 .net http://www.cs.miyazaki-u.ac.jp/~date/lectures/image_process2012/labeling201209gp40_uc.c 画像処理ラベリングのプログラミングなんですがこの穴あきをおしえてください ここで間はなにをするとこなのかおしえてくださいorz
501 :デフォルトの名無しさん :2012/09/17(月) 22:51:30.17 .net このプログラムを書いた人に訊きなさい
502 :デフォルトの名無しさん :2012/09/17(月) 23:28:29.51 .net 馬鹿には聞いてません
503 :デフォルトの名無しさん :2012/09/18(火) 01:14:44.29 .net >>501 すみません、現在その人と連絡がとれなくて、困っています
504 :デフォルトの名無しさん :2012/09/18(火) 01:23:00.19 .net >>500 文字化けしてますかね?? for (y=0; y<h; y++){ for (x=0; x<w; x++){ i = y*w +x; k = init[i]; while ( identical[k] != 0 ){ ここの間 identical[k] = 0; // ダミー } final[i] = k; printf("%3d", final[i]); } printf("\n"); } のとこです
505 :デフォルトの名無しさん :2012/09/20(木) 00:24:53.72 .net 豚切りすいません。 超初心者です.... touchでファイル作ろうとしたらpermission denied ってなるんで chmodでパーミッション変更しようとしてもどうやら元々の奴の権利を変えるだけのモノ? みたいで、作成できるように権限を変えたいのですが、 どなたか教えてもらえるとありがだいです。
506 :デフォルトの名無しさん :2012/09/20(木) 01:22:55.36 .net ディレクトリにchmod あと.hogercの確認
507 :デフォルトの名無しさん :2012/09/20(木) 05:02:08.38 .net 馬鹿には無理
508 :デフォルトの名無しさん :2012/09/21(金) 20:51:51.26 .net 505です。 レスありがとうございます。 あれから chmod 777を打ったんですが Unable to change file mode on と出てきてしまいました。
509 :505 :2012/09/21(金) 22:01:57.26 .net 何度もすいません。 ごめんなさいm(_ _)m ディレクトリの権限がrootだったのでユーザーから作るのはやめて、 rootでファイルを作りました。 そのファイルというのは~.phpでして、それでhttp://localhost/~.php をクリックしても 白紙でした。 どうすればPHPの情報が表示されるようになるのでしょうか⁇
510 :デフォルトの名無しさん :2012/09/21(金) 22:37:37.44 .net プログラミング以前に、操作がままならないんだから、 UNIX板orLinux板の初心者スレに行け。
511 :デフォルトの名無しさん :2012/10/08(月) 16:57:39.28 .net オープンソースなLinuxって何でもかんでも無料で大丈夫なんだろうか
512 :デフォルトの名無しさん :2012/10/08(月) 18:47:25.65 .net だからGNUやFSFが共産主義的思想に基いているという噂が広まるんだよ
513 :デフォルトの名無しさん :2012/10/08(月) 19:31:21.24 .net 板違いってことさえわからない頭で考えても無駄。
514 :デフォルトの名無しさん :2012/10/08(月) 20:09:56.73 .net >512 それは噂じゃなくて事実www
515 :デフォルトの名無しさん :2012/10/10(水) 14:24:45.90 .net ディレクトリストリームに関する質問です。 open関数にディレクトリのパスを入れると、ディレクトリストリームという ものがオープンされると参考書に書かれています。 これは、open関数が"ハードディスク上"のディレクトリの中身の ディレクトリやファイルの情報を"メモリ上"のstruct dirent構造体に マップしていっていると考えていいのでしょうか? あとreaddir関数に関する質問なのですが、この関数の引数のstruct dirent 型のポインタはreaddir関数で+1してから、このポインタに上書き(?)されて ますか?それとも初めに引き渡されたポインタを保持してますか? まだ勉強中なので的確な言葉選びができてなくて回りくどい言い回しに なってそうですが教えてください。
516 :デフォルトの名無しさん :2012/10/10(水) 15:07:31.31 .net >>515 openシステムコールなら http://kazmax.zpp.jp/cmd/o/open.2.html
517 :デフォルトの名無しさん :2012/10/10(水) 15:36:47.63 .net >>516 すみません間違えました。 open関数じゃなくてopendir関数でした。。。 この辺の認識が正しいかどうかはヘッダファイル見ていけば わかるんですかね? ヘッダファイルなんて現時点のスキルで読み始めたら時間かかって しょうがねえだろうなあと思ってるんですが。
518 :デフォルトの名無しさん :2012/10/10(水) 15:45:22.84 .net >>515 "opendir source code"でググって、ソース読め
519 :デフォルトの名無しさん :2012/10/10(水) 15:46:09.33 .net >>517 システムコールの本を調べたら
520 :デフォルトの名無しさん :2012/10/10(水) 16:15:37.67 .net >>518 ,519 キーワードあざっーす! この辺に入っていかないとダメなんですね。 ずぶずぶやないかぁ・・・
521 :デフォルトの名無しさん :2012/10/10(水) 16:25:38.33 .net 勉強中なら、ストリームという概念がわかったところで次に行った方が良いんじゃないかと思うけど まぁ人それぞれだよね。
522 :デフォルトの名無しさん :2012/10/11(木) 00:06:26.42 .net scp 転送元ディレクトリ/*.* ./test を実行したときカレントにtestというディレクトリが無いと testというファイル名でファイルができてしまいます。 testディレクトリがなかったらエラーになるようにしたいのですが どうしたらいいでしょうか?
523 :デフォルトの名無しさん :2012/10/11(木) 00:11:06.80 .net >>522 そういうプログラムをつくればおk
524 :デフォルトの名無しさん :2012/10/11(木) 00:49:13.63 .net scp 転送元ディレクトリ/*.* ./test/
525 :522 :2012/10/11(木) 18:46:55.30 .net >>524 おお、できました。そういうのがしたかったです。 ありがとうございました。
526 :デフォルトの名無しさん :2012/10/19(金) 07:30:16.88 .net openした際にメモリ上にマップされるFILE構造体のメンバに ファイルディスクリプタがあると思うのですが、 同じファイルをopenするプロセスが複数あるとき、 それぞれのプロセス内のFILE構造体のメンバである ファイルディスクリプタは異なる値で、実データへのポインタ (inodeと対になっているメタデータ)は共有という理解で合ってますか?
527 :デフォルトの名無しさん :2012/10/20(土) 01:57:02.57 .net ファイルディスクリプタは、プロセスごとに定義されているので、 偶然同じ値であることがあります。 stdin, stdout, stderr以外にファイルはオープンしてない場合、 次にfopenしたファイルのファイルディスクリプタは3です。 要するにファイルディスクリプタは全プロセスにまたがった固有のIDと見做せません。
528 :デフォルトの名無しさん :2012/10/20(土) 06:15:36.17 .net >>527 ありがとうございます。 ようやくマルチタスクなる物が何なのかわかってきました。
529 :デフォルトの名無しさん :2012/10/20(土) 07:26:12.03 .net >>528 君のレベルが分かりました
530 :デフォルトの名無しさん :2012/10/21(日) 04:02:48.75 .net プログラムを走らせると、topで見るとsystem CPUの値が異常に高いのですが、 systemってどんなことをした場合に消費されるのでしょうか?
531 :デフォルトの名無しさん :2012/10/21(日) 07:06:44.21 .net ソウルからヨボセヨ 「ハングル輸出」は虚報 2012.10.20 03:01 [韓国] 韓国独自の文字であるハングルは民族的自慢のタネで、10月9日が「ハングルの日」として以前は祭日だった。 しかし祭日が多すぎると休日からははずされたため、復活を望む声が強い。 来年には復活の可能性があるとかで、カレンダー業者が気をもんでいる。 そのハングルをめぐってまずい話が起き問題になっている。 先年、インドネシアの小さな島の部族がハングルを自分たちの「公式文字」に採択したというニュースがあり 「ハングルの優秀性を世界に示した」として官民挙げて大喜びした。 教科書でも紹介されるまでになったのだが、最近、この話はマスコミが誇張したもので「公式文字採択」は虚報と分かった。 政府も教科書や各種展示を手直しすることになったという。 この少数部族というのはスラウェシ島に近いブトン島のチアチア族といい人口は6、7万人とか。 固有の部族語を話しているが、韓国の団体が援助を餌にその部族語の表記にハングルを使うことを勧めた。 その結果「公式文字に採択」となったというのだがインドネシアはローマ字が公用文字。地方の部族が別の文字を 公式文字に採択するのはありえない。 実際は単にハングルを学んでいるといった程度だったのだ。ハングル愛国主義の勇み足である。(黒田勝弘) http://sankei.jp.msn.com/world/news/121020/kor12102003020000-n1.htm
532 :デフォルトの名無しさん :2012/10/21(日) 14:04:47.52 .net >>530 システムモードのCPU使用率が高いということは、つまりカーネルで動作していた時間が 多かったことを意味する。 例えば、ファイルのopen, closeを繰り返してファイルシステムやデバイスドライバばかり 動しているとか
533 :デフォルトの名無しさん :2012/10/27(土) 22:06:34.21 .net >>532 >例えば、ファイルのopen, closeを繰り返してファイルシステムやデバイスドライバばかり >動しているとか この理由付けはどうなんだ
534 :デフォルトの名無しさん :2012/11/01(木) 00:23:16.28 .net >>530 メモリ足んなくて、メモリスワップしてるような状況でもsystemが上がりがちですかね。
535 :デフォルトの名無しさん :2012/11/01(木) 09:46:46.73 .net >>530 状況も説明せんと分かるわけがない
536 :デフォルトの名無しさん :2012/11/05(月) 01:34:52.74 .net 思いつくのを適当に列挙すると ・ユーザーランドから無駄にシステムコール発行してる ・ドライバが腐ってる ・ハードが壊れてる ・アタックされてる かねえ
537 :デフォルトの名無しさん :2012/11/17(土) 19:30:00.85 .net 教えてください /proc以下の仮想ファイルと同様の仕組みを、自作アプリケーションの内部変数を 外から確認するのに使いたいのですが、それ用のAPIはありますか? また、ターゲットに考えているアプリはパフォーマンスが非常に重要なのですが、 各種の高速ソフトウェアを動作させることが可能なOS自身が/proc以下を提供しているのだから、 そのような仕組みは処理のボトルネックにはならないだろうと期待しているのですが、どうですか?
538 :デフォルトの名無しさん :2012/11/17(土) 19:37:46.89 .net text I/Oだから普通にボトルネックになりうる。 mmapを使ってください。
539 :デフォルトの名無しさん :2012/11/17(土) 19:49:57.94 .net >>538 ありがとうございます!
540 :デフォルトの名無しさん :2012/11/17(土) 23:31:49.74 .net system()で生成した別プロセスに対してシグナルを送信する場合、典型的にはどれくらいの時間がかかりますか? (人間の感覚では一瞬ですが、たとえ一瞬でも実際は有限の時間がかかりますよね?) また、シグナルと同様にプロセス間で非同期の通知をするための高速な方法は他にありますか?
541 :デフォルトの名無しさん :2012/11/17(土) 23:45:34.34 .net シグナルはそんなに速くないよ。 特にシグナルハンドラー使う場合。 ハンドラはカーネル空間でなくてユーザ空間で実行しないといけないから。 システムコールにブロックされる可能性あるから、 シグナル割り込み可能性や再入可能性で調べてみて。 セマフォアやpthread_mutex(ただしプロセス間拡張あるUNIXで)使った方がいいよ。
542 :デフォルトの名無しさん :2012/11/18(日) 00:05:08.76 .net >>541 そうなんですか・・・(´・ω・`) msec以下での応答は難しいですかね・・・・・?
543 :デフォルトの名無しさん :2012/11/18(日) 00:15:04.12 .net 使うシステムコールやマルチスレッドかどうかによる。 ちなみにmsecレベルの応答性なら 高速性は必要とされてない応用にカテゴライズされると思う。
544 :デフォルトの名無しさん :2012/11/18(日) 00:21:06.76 .net >>540 蒔きに火をつける時間と、のろしをあげる時間が必要
545 :デフォルトの名無しさん :2012/11/18(日) 00:26:16.02 .net >>543 そうなんですか・・・喜 あ、スレッド間じゃなくプロセス間で >>544 送信側でもたつくという意味ですかね?
546 :デフォルトの名無しさん :2012/11/18(日) 00:28:46.80 .net マルチスレッドかどうかは、 中断可能じゃないシステムコールを呼んでいる時に シグナル受けて処理に時間がかかるかどうかに関わってくる。 マルチスレッドなら、シグナル受けるの専用のスレッド置いておけば良い。
547 :デフォルトの名無しさん :2012/11/18(日) 00:31:11.12 .net >>546 勘違いしていました よく分かりました・・・・謝
548 :デフォルトの名無しさん :2012/11/18(日) 04:39:58.63 .net >>544 ONした後は光速で伝わるから 馬脚よりは高速なんですね わかります
549 :デフォルトの名無しさん :2012/11/18(日) 14:04:51.05 .net Intel Xeon Phiを扱えるコンパイラーを教えてちょ
550 :デフォルトの名無しさん :2012/11/18(日) 15:07:05.74 .net gcc
551 :デフォルトの名無しさん :2012/11/18(日) 21:02:49.61 .net 素直にicc使えば?
552 :デフォルトの名無しさん :2012/11/19(月) 02:02:44.98 .net >>541 共有メモリにフラグ用意して、RTプライオリティにしたプロセス間で ポーリングかけるのが時間安定性的に一番確実な気がしないでもない CPU食いまくるが
553 :デフォルトの名無しさん :2012/12/07(金) 18:16:20.75 .net 初心者なので間違っているかもしれませんが、 おそらくデータリンク層に関する質問です。 例えばプログラムでIPプロトコルを使って、 LAN内のサーバにデータを送るということをしようとする場合、 プログラムではIPヘッダに対応するstruct sockaddr構造体のメンバに 情報を与えるということしか行っていないと思うのですが、 Ethernetヘッダはプログラムを書いてコンパイラを通すと、 送信処理を行う時は NICを通してEEPROMからMACアドレスを読み込んで それを送信バッファに 書き込むという処理がアセンブラコードに 書かれていると考えていいのでしょうか?
554 :デフォルトの名無しさん :2012/12/07(金) 18:23:54.52 .net なんでやねん。
555 :デフォルトの名無しさん :2012/12/07(金) 18:30:08.87 .net 初心者とは謙虚な
556 :デフォルトの名無しさん :2012/12/07(金) 18:40:22.62 .net >>553 そう考えては駄目です。そうなっていませんから。
557 :デフォルトの名無しさん :2012/12/07(金) 18:47:57.21 .net >>558 UNIXプログラミングスレでの質問なのでUNIXでどうなっているかというと、 L3(IPパケット)ヘッダやL2(Ethernetパケット)ヘッダを作るのはOSカーネル内の プロトコルスタックと呼ばれているモジュールが行う。 組み込みなどでキミが想像しているようなライブラリでの実装もあるかもしれない。
558 :デフォルトの名無しさん :2012/12/07(金) 19:04:09.57 .net お、おれに言われても…
559 :デフォルトの名無しさん :2012/12/07(金) 20:26:33.52 .net >>558 もう一回言うからよく聴け。 それはカーネルの仕事でユーザプログラムの仕事じゃない。
560 :デフォルトの名無しさん :2012/12/07(金) 20:53:34.27 .net >>553 やってて楽しいか?
561 :デフォルトの名無しさん :2012/12/07(金) 21:31:20.37 .net >>553 ネットワークすれで聞けば
562 :デフォルトの名無しさん :2012/12/08(土) 07:25:35.96 .net >>557 さすがエスパー様 仰る通り組み込みを想定しておりまして、 ハードウェアから勉強するしかねえなーと思いながらちょこちょこ 勉強しだしているのですが、なにぶんノーマルの処理を知らないのです。 プロトコルスタック勉強してみます。ありがとうございます。 >>560 ひとつひとつ論理的な積み重ねで物ができるとおもしろいです。 >>561 折を見て聞いてみます。とりあえずプロトコルスタックなるものを 勉強してみます。誘導ありがとうございます。
563 :デフォルトの名無しさん :2012/12/08(土) 09:53:49.69 .net プロトコルスタックを自前で書いてたら一生かかっても終わらねえよ。
564 :デフォルトの名無しさん :2013/06/20(木) 10:09:48.69 .net echo aaa > test.txt のようなテキストファイルに文章を追記するコマンドの使い方がありますが 半角スペース入り半角記号入り改行入り半角英数字文字列をテキストファイルに追記もしくは新たにテキストファイルを作成する コマンドはありますか?バッチファイルを作成したいのでviでテキストエディタを起動して作成等の方法は使えません。
565 :デフォルトの名無しさん :2013/06/20(木) 11:12:49.75 .net echo " aaa aaa " > test.txt とかでどう
566 :デフォルトの名無しさん :2013/06/20(木) 11:29:14.09 .net >>564 「bash ヒアドキュメント」でググれ
567 :デフォルトの名無しさん :2013/06/22(土) 22:29:05.19 .net Subversionをインストールしたマシンにコミットしたファイルの ディレクトリってデフォルトだとどこにあるかわかりますか?
568 :デフォルトの名無しさん :2013/06/22(土) 23:24:21.76 .net >>567 デフォルトというのは無いと思うよ。
569 :デフォルトの名無しさん :2013/06/23(日) 02:19:26.06 .net >>564 echo -e "aaa\naaa"
570 :デフォルトの名無しさん :2013/06/23(日) 05:04:30.30 .net ヒアドキュメントってこういうやつね。 cat <<_END_ >test.txt aaa a a _END_
571 :デフォルトの名無しさん :2013/07/09(火) NY:AN:NY.AN .net Linux で、Objective-C 使えますか?
572 :デフォルトの名無しさん :2013/07/09(火) NY:AN:NY.AN .net http://www.gnustep.org/
573 :デフォルトの名無しさん :2013/10/23(水) 07:55:21.29 .net ハードリンクと違って、 シンボリックリンクはそれ自体がリンク情報を格納したファイルだとの事ですが リンク情報ファイルとして直接見る(テキスト/バイナリエディタ)にはどのようにすればよいでしょうか?
574 :デフォルトの名無しさん :2013/10/23(水) 08:11:05.93 .net >>573 どのファイルシステムの話をしてんだよ。
575 :デフォルトの名無しさん :2013/10/23(水) 09:04:19.27 .net 環境は MacOS10.7 ファイルシステムは HFS+ ですが ファイルシステムによって開き方が違うんですか?
576 :デフォルトの名無しさん :2013/10/23(水) 09:19:54.34 .net わかればよろしい
577 :デフォルトの名無しさん :2013/10/23(水) 10:02:16.47 .net >>575 http://www.wdic.org/w/TECH/%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AA%E3%83%83%E3%82%AF%E3%83%AA%E3%83%B3%E3%82%AF extではファイルにならないこともある。これを利用して高速なロックファイルとする方法あったね。HFS+はわかんないや。
578 :デフォルトの名無しさん :2013/11/02(土) 07:42:13.92 .net >>575 マカーはこちらへ http://toro.2ch.net/test/read.cgi/tech/1113058054/
579 :デフォルトの名無しさん :2014/03/04(火) 10:40:27.75 .net あらら随分と寂れちゃって やっぱUNIX系でプログラムミングしようなんてヴァカは少ないんだろうな
580 :デフォルトの名無しさん :2014/03/04(火) 10:44:38.16 .net 馬鹿には無理
581 :デフォルトの名無しさん :2014/03/04(火) 12:47:00.64 .net 「やっぱUNIX系でプログラムミングしようなんてヴァカ」という奴はいない
582 :デフォルトの名無しさん :2014/03/04(火) 13:49:03.30 .net >>579 んじゃ何でプログラミングするんだよ?
583 :デフォルトの名無しさん :2014/03/05(水) 00:05:19.95 .net >>579 馬鹿には無理
584 :デフォルトの名無しさん :2014/03/05(水) 03:25:53.72 .net わかればよろしい
585 :デフォルトの名無しさん :2014/03/07(金) 22:08:54.91 .net ユニックスでプログラミングとか真性のオタクだろw
586 :デフォルトの名無しさん :2014/03/08(土) 13:19:20.76 .net >>585 馬鹿には無理
587 :デフォルトの名無しさん :2014/03/08(土) 14:07:00.70 .net まあプログラミング作業そのものはwin 上でおこなうけどな
588 :デフォルトの名無しさん :2014/03/10(月) 03:07:52.96 .net プログラミングする奴はゴロゴロいるけどプログラムミングはそうそういないな
589 :デフォルトの名無しさん :2014/03/10(月) 11:58:20.45 .net プログラムミングだからか、そりゃMinGWでやってりゃいらつくかもしれん
590 :デフォルトの名無しさん :2014/03/12(水) 19:32:04.52 ID:cq0Wuml2.net Program MinG
591 :デフォルトの名無しさん :2014/04/04(金) 11:37:49.40 ID:+1zjSCgd.net 私は主にLinux上で、C/C++のプログラミングをするんですが、 Linux の システムコールや標準ライブラリ関数が、 スレッドセーフかどうかが公式マニュアル等には、 まず記述されていないことが多いです。 スレッドセーフでない関数をスレッドから使うと おかしな動きになるんですが、 スレッドセーフかどうかがハッキリ記述されている例の方が 少ないです。 みなさんはどうしてますか?
592 :デフォルトの名無しさん :2014/04/04(金) 11:56:16.78 ID:5os8VUT8.net man pthreads
593 :デフォルトの名無しさん :2014/04/07(月) 00:41:04.44 ID:JdSV9wAR.net システムコールはされてるだろ。glibcも。
594 :デフォルトの名無しさん :2014/04/08(火) 18:36:01.77 ID:nqRQMd5J.net 質問です。 ネットワークAPIの略号はこんな感じでいいのでしょうか? a : ascii h : host hs : host short hl : host long n : network or numeric ns : network short nl : network long p : presentation (.で区切られたアドレスを文字列で表現) aとpは同じ意味なのでしょうか? nはnetworkと説明されていたり、numericと説明されているのですが、 どちらでもいいのでしょうか? よろしくお願いいたいします。
595 :デフォルトの名無しさん :2014/04/08(火) 19:06:15.00 ID:XsPn59mL.net ???
596 :デフォルトの名無しさん :2014/04/08(火) 19:30:25.89 ID:pfMGzHK8.net >>594 まじれすすると しいて言えばaがaddress、nがnetworkじゃ? inet_addrとinet_networkがあるしな。 aがasciiじゃ使える文字の種類が多すぎだろw aとpは、とりあえず関数の対応範囲が違う。 しかし、これがUNIX固有の話だと思ってここに書き込んだとしたらそれは間違いw
597 :デフォルトの名無しさん :2014/04/08(火) 19:37:10.16 ID:kcd9laA9.net >>596 一部の英語ページでasciiだと書かれている所があったのでasciiだと思いました。 >aとpは、とりあえず関数の対応範囲が違う。 kwsk >しかし、これがUNIX固有の話だと思ってここに書き込んだとしたらそれは間違いw と言ってもUNIX発祥ですよね?
598 :デフォルトの名無しさん :2014/04/08(火) 19:55:39.16 ID:pfMGzHK8.net >>597 >と言ってもUNIX発祥ですよね? まあBSDソケットのことを指すなら... しかしじゃあC言語の話もUNIXなのか? ウェブの質問をする場合はNeXTか?
599 :デフォルトの名無しさん :2014/04/09(水) 01:22:41.83 ID:rnlf/mPK.net >>579 会社を探しても見つからないのでPHPを覚えることにした
600 :デフォルトの名無しさん :2014/04/09(水) 09:01:14.53 ID:e48Xi3NQ.net >>598 横だけど >しかしじゃあC言語の話もUNIXなのか? ウェブの質問をする場合はNeXTか? 前半はカニチャーハン読むとその感じがわかるが、後半は???
601 :デフォルトの名無しさん :2014/04/09(水) 09:32:21.34 ID:5VEJdG+v.net わからないなら黙ってろよ
602 :デフォルトの名無しさん :2014/04/09(水) 09:57:21.51 ID:e48Xi3NQ.net 適当なこと書くなよ
603 :デフォルトの名無しさん :2014/04/09(水) 10:55:51.16 ID:Lfy0Xgry.net webはNeXTSTEP上で開発されたからでしょ。
604 :デフォルトの名無しさん :2014/04/09(水) 10:59:29.84 ID:3Xcjw1HB.net ソースは?
605 :デフォルトの名無しさん :2014/04/09(水) 11:10:06.95 ID:Lfy0Xgry.net >>604 ググればいくらでも。 http://www.w3.org/People/Berners-Lee/WorldWideWeb.html
606 :デフォルトの名無しさん :2014/04/09(水) 11:28:38.99 ID:3Xcjw1HB.net ブラウザーか
607 :デフォルトの名無しさん :2014/04/09(水) 11:30:48.25 ID:3Xcjw1HB.net サーバもそうだね、ごめん
608 :デフォルトの名無しさん :2014/04/09(水) 11:53:40.04 ID:LRWrSFoo.net >>600 カニチャーハンに吹いた。 >>598 世に転がってるコードのほとんどがBSDソケット関連だからしょうがあるまいよ
609 :デフォルトの名無しさん :2014/04/09(水) 12:45:03.71 ID:Lf5xDRrs.net cern httpdにNextSTEPのコードが残ってるのかな?調べる元気はないが ttp://www.w3.org/Daemon/
610 :デフォルトの名無しさん :2014/04/09(水) 14:05:10.90 ID:Ih8FRvRW.net aはBSD socket こっちがオリジナル pはPOSIX POSIXがpに変えた理由は分からん。atoi何かと共通でいいのにな。 >>609 NeXTSTEPで開発したと言っても、BSDシステムとして使ってるだけ。 ところどころNeXT亜種としてのifdefがある程度。 waitかwait3かwaitpidかとか。
611 :デフォルトの名無しさん :2014/04/09(水) 14:32:24.39 ID:ZHBwUHYP.net >>610 なるほど
612 :デフォルトの名無しさん :2014/04/09(水) 14:34:12.02 ID:yn/sF65z.net >>610 サーバ側はそうかもしれないけど、 クライアント側もNextStepフレームワークの機能をほぼ使ってなかったの?
613 :デフォルトの名無しさん :2014/04/09(水) 15:46:27.04 ID:i8e/a0RW.net >>610 POSIXで追加した関数がpになった? POSIXでもaは残っているよね?
614 :デフォルトの名無しさん :2014/04/10(木) 13:11:17.94 ID:XJwbthao.net >>612 >>609 からの流れを無視してそんな答えの決まってる質問するなよ。
615 :デフォルトの名無しさん :2014/04/10(木) 13:49:44.14 ID:TvL1VyED.net >>609 が>>600 を理解せずに、頓珍漢な事を言い出しただけ
616 :デフォルトの名無しさん :2014/04/10(木) 14:09:32.07 ID:UW8P9M5z.net >>606 >>607 >>609 普通の流れじゃないか?
617 :デフォルトの名無しさん :2014/04/10(木) 14:50:52.67 ID:J/8goZVV.net >ウェブの質問をする場合はNeXTか? ウェブといえばブラウザーの話な、これまめな
618 :デフォルトの名無しさん :2014/04/10(木) 14:56:00.17 ID:XJwbthao.net つまらないボケのつもりなのか何なのか。
619 :デフォルトの名無しさん :2014/04/10(木) 14:57:31.49 ID:FMX8fFXB.net つかタダでさえ人減ってるのにいがみ合ってどうすんだよ
620 :デフォルトの名無しさん :2014/04/10(木) 14:58:53.83 ID:HaZcfplR.net >>612 使ってたよ。今のiOSのCocoa Touchにあたるものが既にあったからね。 当時大学でNeXTが使えたので一応リアルタイムで遊んだ。 しかし「所詮ハイパーテキストだろ」、と思った俺に先見の明はまるでなかった。 Gopherでエロ画像を配布・収集することに精を出していたのはいい思い出 その後NeXTからWebObjectが発表されて、ただの静的なハイパーテキストから 動的なWebアプリの概念が発展していった、と理解している。
621 :デフォルトの名無しさん :2014/04/10(木) 15:47:15.93 ID:J/8goZVV.net Mosaicからしか知らん tp://ftp.ncsa.uiuc.edu/Mosaic/
622 :デフォルトの名無しさん :2014/04/10(木) 16:45:24.84 ID:A86XAulB.net そういやarchieを最後に使ったのがいつだったか思い出せないや
623 :デフォルトの名無しさん :2014/04/10(木) 20:58:27.68 ID:CGLbGtu7.net どこまでタイムスリップしたらwwwの創始者になれるかな。
624 :デフォルトの名無しさん :2014/04/10(木) 21:29:38.26 ID:12EYUgzM.net www
625 :デフォルトの名無しさん :2014/04/11(金) 09:27:55.52 ID:I+yNGwZi.net >>623 マジレスすると そういう夢見るのも良いけど 20年後の世界標準(ω)になるものを 今から創造した方が楽しいぞ
626 :デフォルトの名無しさん :2014/04/11(金) 10:02:34.34 ID:F9N8K0IN.net >>625 マジレスすると別に興味ない。 自分の開発環境が快適と思えればそれでいい。
627 :デフォルトの名無しさん :2014/04/11(金) 11:53:48.19 ID:nfBS813s.net 今どき、サーバプログラムを作るときはどうするのがいいのかな 規模が小さいからxinetdで済ませたいんだけどそれでもいいんだろうか
628 :デフォルトの名無しさん :2014/04/11(金) 13:01:29.58 ID:31jcxzSz.net >>627 デーモンにするか、xinetd にするかは、 クライアント側からのアクセス頻度で決めるべき問題でしょ。 アクセス頻度が十分に多ければデーモンにすべきだし、 少なければ xinetd, inetd の方がいい。
629 :デフォルトの名無しさん :2014/04/11(金) 17:18:05.86 ID:aluZjTib.net 一般的に使われるものならinetdがないMac OS Xの事も考えてやってね。 代わりにlaunchdというのがある。
630 :デフォルトの名無しさん :2014/04/12(土) 11:46:22.55 ID:0X1ZzDgt.net ありがとう inetd系でいくわ
631 :デフォルトの名無しさん :2014/04/12(土) 15:25:30.45 ID:hH6WyNhq.net http://2ch.sc/
632 :デフォルトの名無しさん :2014/04/12(土) 15:56:33.94 ID:EgrmLH2O.net ひろゆきの宣伝うぜー。 10年前にあめぞうを荒らして2chに誘導したのと全く同じことをまたやろうとしてやがる。 全く変わらずクズだな、ひろゆき。
633 :デフォルトの名無しさん :2014/04/12(土) 16:01:24.03 ID:UapBJj1i.net なるほどね また鯖おちたね
634 :デフォルトの名無しさん :2014/04/30(水) 15:45:33.66 ID:BnmcVkVe.net returnは予約語 WEXITSTATUSが非ゼロの場合のコメントが「exit 0の時」 実際に問題となったコードで出し直し
635 :デフォルトの名無しさん :2014/04/30(水) 15:55:27.10 ID:23BUNUOn.net http://d.hatena.ne.jp/XuHuang/touch/20070808/1186593679
636 :デフォルトの名無しさん :2014/04/30(水) 16:47:23.85 ID:+76j8OJU.net t
637 :デフォルトの名無しさん :2014/04/30(水) 18:11:15.11 ID:ZY5HChQC.net 馬鹿には無理
638 :デフォルトの名無しさん :2014/05/06(火) 12:51:39.88 ID:OFsDJUcu.net Cで、標準入力と標準出力をひとつにして標準入出力としたい。
639 :デフォルトの名無しさん :2014/05/06(火) 13:49:59.83 ID:5cOP3XrV.net すれば
640 :デフォルトの名無しさん :2014/05/06(火) 13:52:48.20 ID:OFsDJUcu.net >>639 そうしたいのはやまやまだが やり方がわからぬ
641 :デフォルトの名無しさん :2014/05/06(火) 17:09:21.31 ID:R4LFdeTL.net unix ではプロセス間に生成されるパイプは基本リードまたはライトの一方向として生成されるからね‥‥ ふつうのディスクリプタのように双方向にすればいいのだが
642 :デフォルトの名無しさん :2014/05/06(火) 18:55:48.96 ID:G4//2ydq.net >>640 こういうことをしたいの? #include <stdio.h> main() { int x; freopen("/dev/tty", "w+", stdin); freopen("/dev/tty", "w+", stdout); // not used fprintf(stdin, "enter a number:"); fflush(stdin); fscanf(stdin,"%d", &x); fprintf(stdin, "number is %d\n", x); }
643 :デフォルトの名無しさん :2014/05/06(火) 19:01:55.55 ID:G4//2ydq.net fprintf, fscanf じゃなく printf, scanf の方がよかったか
644 :デフォルトの名無しさん :2014/05/10(土) 14:44:23.71 ID:W8dcXoh3.net >>640 stdoutをfcloseしてから、fileno(stdin)をfdopenすればいい。 ただそれをstdoutとして使うのは処理系依存になる。 マルチスレッド対応のライブラリはstdoutに代入できなくなってるから。 fdreopenがあればいいのだが。
645 :デフォルトの名無しさん :2014/05/10(土) 16:08:42.04 ID:S6+Ypxbi.net どういう使い方を想定していますか?
646 :デフォルトの名無しさん :2014/05/10(土) 20:31:33.38 ID:XNOk+z7r.net >>645 ソケットやシリアルのディスクリプタを引数として なんか通信して処理する関数があるとするじゃろ? それに「標準入出力」を渡してTESUTOとかしたいのじゃ。
647 :デフォルトの名無しさん :2014/05/10(土) 23:10:22.73 ID:eu6ll0of.net >>646 意味ねーよ、たぶん。
648 :デフォルトの名無しさん :2014/05/11(日) 02:09:06.14 ID:8Qasa1hM.net xinetdなんか使うときにほしいな
649 :デフォルトの名無しさん :2014/05/12(月) 15:49:13.01 ID:iANYuL+Z.net >>648 それは、stdin, stdoutにこだわらなければ、fdopenでなんとかなるしな。 >>646 テスト時はmainで切り替えるのも結構簡単。
650 :デフォルトの名無しさん :2014/05/12(月) 16:42:43.61 ID:7oRV1ywD.net >>649 fdopenでなんとかなるっけ?
651 :デフォルトの名無しさん :2014/05/30(金) 18:57:46.01 ID:1vuEEnaV.net OpenBSD の diff コマンドのソースを src.tar.gz というアーカイブの /usr/bin/diff から持ってきて、 わずかに修正後、cygwin でビルドには成功し、一応動作はするのですが、 「diff: : Cannot allocate memory」 というエラーが二回に一回くらい出ます。「:」は二つです。 これは何が原因で、どうやったら直せますか? ソースの修正箇所は、__dead ・__dead void usage(void) の __dead が定義されていなかったので、 #define __dead とした。 ・fgetln() が宣言されていなかったようなので、 呼び出し箇所を my_fgetln() という名前に変更し、 /* $OpenBSD: util.c,v 1.23 2007/09/17 09:28:36 espie Exp $ */ /* $NetBSD: util.c,v 1.10 1996/12/31 17:56:04 christos Exp $ */ /* * Copyright (c) 2001 Marc Espie. */ /* OPENBSD ORIGINAL: usr.bin/make/util.c */ と書かれた、fgeln() のソースを関数名を my_fgetln()に変更して追加した。
652 :デフォルトの名無しさん :2014/05/30(金) 19:05:18.54 ID:1vuEEnaV.net なお、diffのソース・フォルダで"Cannot" "allocate" "memory" と いうキーワードを検索してみましたが、違うキーワードが含まれた 別の文字列の一部として存在しているだけでした。 「diff」という文字列を誰がどうやって表示しているのかさえ分かり ません。__FILE__ マクロも検索してみましたが、見つかりません でした。
653 :デフォルトの名無しさん :2014/05/30(金) 19:10:41.56 ID:SSvUP3u/.net argv[0]
654 :デフォルトの名無しさん :2014/05/30(金) 19:31:55.39 ID:1vuEEnaV.net main() 関数の冒頭で、 { char **oargv; // main のローカル変数 oargv = argv; while ((ch = getopt_long(argc, argv, OPTIONS, longopts, NULL)) != -1) { ・・・ lastch = ch; newarg = optind != prevoptind; prevoptind = optind; } argc -= optind; argv += optind; ・・・ set_argstr(oargv, argv); ・・・ } のようになっており、oargv は上記以外では参照されておらず、 argv[0]を参照できる可能性が有るとすれば、 getopt_long() と set_argstr() しかないようです。 これらの関数のうちどちらかが、メッセージを出しているのでしょうか?
655 :デフォルトの名無しさん :2014/05/30(金) 20:04:01.04 ID:SSvUP3u/.net 餅は餅屋 cygwinはcygwinから
656 :デフォルトの名無しさん :2014/05/31(土) 07:45:18.26 ID:6bjDZoIF.net OpenBSDのdiffソースをもってきた理由は、ライセンスの問題からです。 ところで、エラーの原因が判明しました。 set_argstr()の中で、argsize が負の値になり、xmalloc(argsize) が内部で呼び出しているmalloc(argsize)に失敗し、err(2,NULL) を呼び、 err()が、malloc()が設定したグローバル変数 errno に応じたメッセージ として「Cannot allocate memory」を出していたのでした。 なお、set_argstr(av,ave)のavには、main() に渡された状態の argv がそのまま 渡され、ave には、-オプションを除いた後にあるファイル名まで移動したargvの 値が渡されています。 どうも、OpenBSD では、argv[k] が、0終端文字列が隙間無く並べら れている性質を利用しているようです。 argv[0],argv[1],argv[2],… "cmd名",0,"-opt1",0,"-opt2",0,…,"file1",0,"file2",0 途中の 0x00 を0x20(空白)に置き換えるだけなので、argsize は、 そのままのバイト数で良いからこのようなコードになっている ようです。4足しているのは"diff"という文字列のバイト数の分のようです。
657 :デフォルトの名無しさん :2014/05/31(土) 07:46:03.82 ID:6bjDZoIF.net 【修正前】 void set_argstr(char **av, char **ave) { size_t argsize; char **ap; argsize = 4 + *ave - *av + 1; diffargs = xmalloc(argsize); strlcpy(diffargs, "diff", argsize); for (ap = av + 1; ap < ave; ap++) { if (strcmp(*ap, "--") != 0) { strlcat(diffargs, " ", argsize); strlcat(diffargs, *ap, argsize); } } }
658 :デフォルトの名無しさん :2014/05/31(土) 07:46:54.80 ID:6bjDZoIF.net 【修正後】 void set_argstr(char **av, char **ave) { size_t argsize; char **ap; argsize = 4; // "diff" 文字列の長さ for (ap = av + 1; ap < ave; ap++) { argsize += 1 + strlen( *ap ); // 間の空白 + 引数の文字数 } argsize++; // 最後の NUL終端文字列 diffargs = xmalloc(argsize); strlcpy(diffargs, "diff", argsize); for (ap = av + 1; ap < ave; ap++) { if (strcmp(*ap, "--") != 0) { strlcat(diffargs, " ", argsize); strlcat(diffargs, *ap, argsize); } } }
659 :デフォルトの名無しさん :2014/05/31(土) 07:52:02.32 ID:6bjDZoIF.net なお、エラー表示に「diff」が表示されているのは、argv[0]を使って いるわけではなく、ライブラリの err() 関数が自分でやってるんですね。 av に argv が渡されているので混乱しそうですが、たまたまです。
660 :デフォルトの名無しさん :2014/05/31(土) 10:56:57.68 ID:DtdLdmhz.net ううむ。確かに試してみるとcygwinのargv[n]はバラバラなアドレスだな
661 :デフォルトの名無しさん :2014/05/31(土) 14:38:59.00 ID:iRT5FyvM.net この糞なdiffのコードはargvがらみ以外にも地雷がたくさんありそう。 argvがらみでも/usr/bin/diffがargv[0]に渡されたらダメなんじゃないか? 4ってmagic numberが糞だから。 >>660 連続してることに依存したコードは糞。
662 :デフォルトの名無しさん :2014/06/01(日) 00:52:00.45 ID:MxSjB8Q5.net >>661 なぜダメ?ソース見て言ってる?
663 :デフォルトの名無しさん :2014/06/01(日) 00:57:21.10 ID:MxSjB8Q5.net というか、これぐらいで糞糞って言ってるのは初心者なんだろうな
664 :デフォルトの名無しさん :2014/06/01(日) 02:19:51.86 ID:e/SJ8pUJ.net >>663 プロはクソでも美味しく調理してみせる ってだけで クソはクソ、とくにそこに変わりはないだろ
665 :652 :2014/06/01(日) 13:29:53.55 ID:uUGuheMf.net OpenBSD の diff ソースは、本質的に複雑な処理の割にはソースが驚くほど 短いです。正直言って、腕のよさを感じました。ソースは: diff.c 11KB diffdir.c 7KB diffreg.c 39KB xmalloc.c 3KB の4つしかソースが無く、本質的には、diffreg.c のみの 1522 行しか ありません。こんなに簡潔に書ける人は、世界でも余りいないのではない でしょうか? ただし、 ・複数の変数を同一行でカンマで区切って宣言している。 ・ローカル変数の名称には1文字など、とても短い物が多い。 ・if () で処理が一行の場合、ブロック {} にせずに書いてある。 ・空行が少ない。 などの特徴があります。
666 :デフォルトの名無しさん :2014/06/01(日) 15:42:24.51 ID:fiMuA4/7.net >>660 そりゃ>>656 みたいになるなんてPOSIXの仕様にないもの。
667 :652 :2014/06/01(日) 18:18:52.63 ID:uUGuheMf.net このdiffに関して、プログラミング技術の秀逸さ以外にソースが 短い理由があるとする666に書いたことに加えて、 ・getopt() を使ってオプションの処理が短く出来ている。 ・pread() を使って、lseek(), read()に分けずに書けている。 ・正規表現ライブラリを使っている。 ・fnmatch()なるワイルドカード式のパターンマッチテストを 使っている。 もあるようです。
668 :652 :2014/06/01(日) 18:20:16.83 ID:uUGuheMf.net >>661 ああ、あの 4 は、ソース中に固定的に入っている "diff" 文字列に 対応しているので、argv[0] がどんな風に変わっても大丈夫だと 思います。
669 :652 :2014/06/01(日) 18:38:13.52 ID:uUGuheMf.net さらに: ・goto 文を使っている。
670 :デフォルトの名無しさん :2014/06/03(火) 06:34:30.54 ID:mwJyftym.net gotoは、finallyの代わりに、エラー処理で使う場合や、 2重ループを一気に抜け出す場合はOK
671 :デフォルトの名無しさん :2014/08/05(火) 09:27:23.16 ID:wh+qTY5L.net MonoBehaviourの読み方が気になってプログラミングに集中できません どなたか教えて下さい!
672 :デフォルトの名無しさん :2014/08/05(火) 13:21:49.58 ID:AfbB56Nf.net モゥノゥ・ビヘイヴュア
673 :デフォルトの名無しさん :2014/08/05(火) 13:24:41.41 ID:AfbB56Nf.net 英和辞書の発音記号を見ればいいだろう
674 :デフォルトの名無しさん :2014/08/05(火) 13:37:09.15 ID:v4Qe9qZY.net >>671 今頃気がついたが、 ここはUnixプログラミング質問スレであって Unityプログラミング質問スレじゃねぇ!wwww
675 :デフォルトの名無しさん :2014/08/05(火) 17:46:28.53 ID:X8aW0ARF.net 分かりづらいボケだな 嫌いじゃない
676 :デフォルトの名無しさん :2014/08/06(水) 22:36:42.77 ID:ZYxq9t1Q.net /tmp/test/下に20140801.txt〜20140805.txt があるときに以下のシェルを流すと ------------------------------ #!/bin/sh files="/tmp/test/" for a in {20140801,20140806} do for filepath in ${files}*${a}* do echo ${filepath} done done ------------------------------ /tmp/test/20140801.txt /tmp/test/*20140806* と表示されてしまいます。 20140806.txtは存在しないので /tmp/test/*20140806* が表示される理由が分かりません。 これを表示しないようにしたいのですが、 if文で存在確認するくらいしかないでしょうか?
677 :デフォルトの名無しさん :2014/08/06(水) 23:31:46.47 ID:XlJsEfbX.net コマンドライン展開じゃないから for filepath in ${files}*${a}* のin句にテキストとして ${files}*${a}* の結果として "/tmp/test/*20140806*"が展開されているだけじゃないの?
678 :デフォルトの名無しさん :2014/08/06(水) 23:44:01.31 ID:ZYxq9t1Q.net >>677 なるほど。コマンドライン展開したらできました。 ありがとうございます。 ------------------------------ !/bin/sh files="/tmp/test/" for a in {20140801,20140806} do for filepath in `find ${files} -name ${a}*` do echo ${filepath} done done ------------------------------
679 :デフォルトの名無しさん :2014/08/06(水) 23:47:40.87 ID:JVlCh9Ly.net *は何もマッチしないときはそのまま*になる。 一般的には、確かに、ファイルの存在確認をするとかになるんじゃ。 シェルによっては*の挙動を変えられたはず。
680 :デフォルトの名無しさん :2014/08/07(木) 00:09:15.66 ID:mcWZAFW+.net >>678 確かに結果としてはできてるけど、 *の振る舞いに違いはないので、 2014086* という名前を探しにいってる。 意図しない物を探しにいっている点で気持ち悪い感じがしないでもない。
681 :デフォルトの名無しさん :2014/08/07(木) 00:35:24.70 ID:WSmP9CNZ.net 天才のみなさん教えてください。 「fork」した子プロセスで「popen」したのですが、「pclose」で終えると、「errno」に「29(ESPIPE)」が設定されていました。 以降の処理では前出のエラーによる影響は無く、正常に終了しているに見えるのですが、 子プロセスで「popen」は使用するべきではないのでしょうか? ご教示お願いいたします。
682 :デフォルトの名無しさん :2014/08/07(木) 01:51:37.36 ID:QaqdPvt4.net error 29 espipe ttp://docs.oracle.com/cd/E19455-01/806-2720/x-94fni/index.html lseek(2)はパイプに対して使えないので、 一旦ファイルに書き込んでから、そのファイルに対して使う
683 :デフォルトの名無しさん :2014/08/07(木) 09:06:04.03 ID:gf97lcsK.net >>681 errnoはエラーしたあとに見るもので、不特定のタイミングで参照して 何か値が入っていたとしても意味はない pcloseのあとに見たのなら、まずpcloseがエラーしたのか確認すること
684 :682 :2014/08/07(木) 10:21:02.27 ID:Nj16SWmn.net >>683 pcloseの戻り値は「0」でした。 ということは、問題無しと解釈してよろしいのでしょうか? 子プロセスでpopenを使用することも問題無いのでしょうか?
685 :デフォルトの名無しさん :2014/08/07(木) 11:01:30.95 ID:56isn469.net >>684 どちらも問題ない
686 :682 :2014/08/07(木) 11:58:56.21 ID:Nj16SWmn.net >>685 ありがとうございました。
687 :デフォルトの名無しさん :2014/08/07(木) 14:54:41.05 ID:FIDAVWXd.net 恐ろしい罠だった
688 :デフォルトの名無しさん :2014/08/08(金) 00:48:08.28 ID:W2uIddTc.net 正常終了した後に、errnoを見たの? 何じゃそれ!
689 :デフォルトの名無しさん :2014/08/09(土) 11:23:56.87 ID:B1dFLZrJ.net 正常終了したときもerrnoセットしろよ 何のためのE_OKだよ殺すぞクソが と思ったことはあるのでバカにしたりしない。
690 :デフォルトの名無しさん :2014/08/09(土) 11:37:13.03 ID:Mi20wbO0.net どんなコード書いてるのかな?
691 :デフォルトの名無しさん :2014/08/12(火) 06:15:41.33 ID:7nSDT24w.net try{ ここでエラーが発生した時のみ、errnoを設定し、catchへ飛ぶ }catch{ ここでerrnoを参照 } C++風に表現すれば、正常時にはerrnoは設定されていないし、 catchブロックも通らないから、errnoを参照できない
692 :デフォルトの名無しさん :2014/08/12(火) 17:15:08.49 ID:hsJ6ic3B.net >>689 ×バカにしたりしない ○バカにできない ◎俺もバカ
693 :デフォルトの名無しさん :2014/08/13(水) 10:46:20.48 ID:03jARyf4.net if(result==1)result=errno; みたいに正規化してから処理るといいよ
694 :デフォルトの名無しさん :2014/08/13(水) 10:49:25.22 ID:03jARyf4.net マイナス書き忘れた まあいいや
695 :デフォルトの名無しさん :2014/08/20(水) 06:24:54.38 ID:L79Zu2V+.net http://jobinjapan.jp/job-listing/keyword-unix.html
696 :デフォルトの名無しさん :2014/09/01(月) 11:59:31.72 ID:5QQ1Caz+.net Xlibについて質問します。 ウィンドウ・マネージャを使用する一般的な環境では、ウィンドウの淵をドラッグすると ConfigureNotifyを受け取ることができます。 ところで、ドラッグの開始と終了を知ることができる通知は受けられますか? Win32APIで言うところのWM_ENTERSIZEMOVEとWM_EXITSIZEMOVEに相当するものを 探しています。 あるいは何らかの方法で知ることは出来ますか? よろしくおねがいします。
697 :デフォルトの名無しさん :2014/09/09(火) 23:38:03.45 ID:/ZjY2rNK.net xlibにdragなんて高級なイベントはないです。 自分でdragと何であるか定義して、そのように自分で書いたコードで解釈してください。
698 :デフォルトの名無しさん :2014/09/10(水) 21:03:14.76 ID:zerYkwqt.net よく知らんけどDNDを使うらしい もちろんツールキットならドラッグ&ドロップサポートしてる思うが
699 :デフォルトの名無しさん :2014/12/23(火) 17:29:19.99 ID:BQHHJ9UZ.net ところで、viってなんであんなに変態的な操作感なんでしょうか?
700 :デフォルトの名無しさん :2014/12/23(火) 18:48:55.43 ID:g0vcdaad.net ところで、emacsってなんであんなに変態的な操作感なんでしょうか?
701 :デフォルトの名無しさん :2014/12/23(火) 18:52:34.58 ID:SVPjuZy1.net カスタムできるんだから、設定した、またはしてない自分が変態ってことだ。
702 :デフォルトの名無しさん :2014/12/23(火) 19:03:45.03 ID:BQHHJ9UZ.net ただのカーソル移動のためにESCでコマンドモードに戻る必要がある点が 素晴らしく変態的だと感じるのですが、皆さんのご感想はいかがでしょうか?
703 :デフォルトの名無しさん :2014/12/23(火) 19:06:48.73 ID:BQHHJ9UZ.net 今、あらためてviをものすごく久しぶりに使ってみたのですが、 insertモードで普通にカーソルキーでカーソル移動できますねw 行追加や行削除もできちゃいます これならいいっすw 勘違いだったのかなぁ。。前はもっと使いにくかった気がしたのですが。
704 :デフォルトの名無しさん :2014/12/23(火) 19:15:34.69 ID:1AeA5HA2.net >>703 前ってドンだけ前だよwww 4.1BSDの頃? 今時のviってvi名乗ってるけどvimだったりしない?
705 :デフォルトの名無しさん :2014/12/23(火) 19:25:20.96 ID:BQHHJ9UZ.net >>704 すみません、いちおうvimです 触ってみたのはVIM 7.3です ちょっと懐かしくなっていろいろいじり始めたのですが、 Windows Tera termのssh経由だと、挙動が違って、insertモードで カーソルキーが効かなかったり(AとかBとか入力される) 文字が消せなかったり 前経験したイケてない感じに似てます
706 :デフォルトの名無しさん :2014/12/23(火) 22:25:53.16 ID:u51zFo5t.net >>705 ひょっとすると :set nocompatible でなおったりしませんか(自信ないけど)? // ノーマルモードに戻ったほうが単語単位とかいろんな動き方ができて結局有利
707 :デフォルトの名無しさん :2014/12/23(火) 22:34:24.66 ID:BQHHJ9UZ.net >>706 いやぁ、素晴らしいです! おかげさまで期待通りの動作になりました このスレの住人さんはさすがっすね
708 :デフォルトの名無しさん :2014/12/23(火) 22:39:03.14 ID:BQHHJ9UZ.net >>706 すみません、肝心のお礼を言い忘れていました どうもありがとうございました(ペコリ
709 :デフォルトの名無しさん :2014/12/24(水) 11:12:32.34 ID:Mlxryodi.net >>707-708 おおそれはなによりです。vimrc 作っとくとそれだけで自動的に nocompatible になるので便利 ハッピークリスマス!
710 :デフォルトの名無しさん :2015/02/04(水) 04:25:26.78 ID:2A4M88bu.net MacOS X 10.8.5でpollがうまく動作せず、困っています。 lessなどのpagerで、標準入力をpipeからttyに切り替えるために、 /dev/ttyをstdinにdupする処理をしていますが、Macではその後の stdinに対する有限時間のpollがタイムアウトしなくなります。 サンプルコードはこんな感じです。 #include <fcntl.h> #include <poll.h> #include <stdio.h> #include <string.h> #include <unistd.h> int main() { char *ttyold, *ttynew; int fd; struct pollfd pfd[1]; ttyold = strdup(ttyname(STDIN_FILENO)); fd = open("/dev/tty", O_RDONLY); dup2(fd, STDIN_FILENO); close(fd); ttynew = strdup(ttyname(STDIN_FILENO)); printf("old:%s, new:%s\n", ttyold, ttynew); pfd[0].fd = STDIN_FILENO; pfd[0].events = POLLIN; if (poll(pfd, 1, 1000) == 0) printf("timeout\n"); return 0; }
711 :711 :2015/02/04(水) 04:26:55.16 ID:2A4M88bu.net (承前) NetBSD, FreeBSD, Linux, Solarisでは1秒間でタイムアウトします。 BSDとLinuxでは/dev/ttyをオープンすると、実際に使用中のttyを 開きますが、MacとSolarisは/dev/ttyそのものがopenされるようです。 Mac上で/dev/ttyではなく、元のttyデバイスを明示的にopenして stdinにdupすると、pollはタイムアウトするようになります。 これはOS Xのバグでしょうか?
712 :デフォルトの名無しさん :2015/02/04(水) 09:47:00.99 ID:mVJhw09N.net 仕様ですbyステーブンス
713 :デフォルトの名無しさん :2015/02/04(水) 11:48:47.58 ID:kErMECZ6.net 杜撰です に見えた
714 :デフォルトの名無しさん :2015/02/04(水) 13:52:16.28 ID:5pZRcUKP.net >>711 拝承です
715 :デフォルトの名無しさん :2015/02/07(土) 12:58:19.68 ID:quWAAr+b.net 日立社員乙
716 :デフォルトの名無しさん :2015/03/04(水) 20:53:07.73 ID:9LdtcOdt.net カレントディレクトリに hoge, text のディレクトリがあって サブディレクトリも含めて hoge の中にある拡張子 .txt ファイルを text に移動させるシェルスクリプトはどう書くのでしょうか?
717 :デフォルトの名無しさん :2015/03/04(水) 21:51:25.04 ID:XBVr1uxu.net >>716 find xargs mv で検索。組み合わせればワンライナーでいける
718 :717 :2015/03/04(水) 23:38:12.92 ID:IvKZGLxQ.net >>717 できました ありがとうございました
719 :デフォルトの名無しさん :2015/04/29(水) 20:52:13.95 ID:1t7Idot8.net Cのソケットって皆さん暗記してますか? それともマニュアル見ながらですか?
720 :デフォルトの名無しさん :2015/04/29(水) 22:53:40.05 ID:NGuLNLKb.net >>719 自作スケルトンに全部書いてあるので マニュアルは最近見てない
721 :デフォルトの名無しさん :2015/04/30(木) 04:30:00.02 ID:zG7Mey9s.net >>720 ああ、それは楽そうですね スケルトンというかラッパは作ってあるけど、 自作ライブラリの管理が面倒であまり使ってないや
722 :片山博文MZ ◆T6xkBnTXz7B0 :2015/06/25(木) 18:04:11.58 ID:L8cWAkwK.net Linuxプログラミング初心者の片山博文MZです。X11のことですが、 XImageとPixmapの使い分けがわかりません。なぜ2つあるのでしょう。
723 :デフォルトの名無しさん :2015/06/25(木) 18:50:05.13 ID:5PWcDoqN.net C/SのCにあるかSにあるかが違うみたいですが。 昔は大きな違いだったんじゃないでしょうか。
724 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/05(日) 11:04:38.55 ID:w9v3Eza+.net XImageはクライアントらしいね。 Ubuntuのapt-getは、死んでんのか? Xlibがインストールできない。。。
725 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/05(日) 11:15:36.41 ID:w9v3Eza+.net サポートが切れてた。また、インストールやり直しか。。。 http://www.ubuntulinux.jp/ubuntu
726 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/12(日) 22:29:58.75 ID:KwHbB7ws.net X11プログラミング始めました。
727 :デフォルトの名無しさん :2015/07/13(月) 07:57:19.32 ID:iSxMMSf8.net 日記はブログかツイッターで
728 :デフォルトの名無しさん :2015/07/13(月) 08:22:17.26 ID:JZVSQPVK.net かたやま君って何歳? もしかして50台? QZさんと同じ人?
729 :デフォルトの名無しさん :2015/07/13(月) 10:01:58.81 ID:eqkpY97O.net 「体液取引所」は、体液を取引できるサービスです。 ttp://katahiromz.esy.es/taieki/
730 :デフォルトの名無しさん :2015/07/13(月) 10:41:27.79 ID:ehCb8x0b.net 今の時代に生X11のプログラミング? そんなわけないから新しいフレームワーク作るのかな? それともネット越しでも使えるってのを前提に何か考えてるのかな?
731 :デフォルトの名無しさん :2015/07/13(月) 11:24:12.72 ID:+NoacgtO.net 21世紀版X11toolkit http://katahiromz.web.fc2.com/xtk/
732 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/13(月) 21:21:53.11 ID:VD4KavgG.net まず最初にXサーバーに接続するためにXOpenDisplayする。最後にXCloseDisplayする。 Display *dpy = XOpenDisplay(NULL); ... XCloseDisplay(dpy); DefaultRootWindow(dpy)でルートウィンドウが取得できる。 WindowもPixmapも描画可能なDrawableである。
733 :デフォルトの名無しさん :2015/07/13(月) 21:23:12.79 ID:RYeBYa4U.net 馬鹿か
734 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/13(月) 22:19:12.31 ID:VD4KavgG.net 標準のXImageは自由すぎて扱いづらい。いちいち確認に時間が掛かりそう
735 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/13(月) 22:31:16.38 ID:VD4KavgG.net 今、画像処理ライブラリー「imaio」の移植をしようとしている。GTKじゃなくて生のX11じゃないといけないんだ。
736 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/13(月) 23:29:48.10 ID:VD4KavgG.net >>731 は俺じゃないよ。当たり前だけどね
737 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/14(火) 16:26:21.63 ID:2KYZ+h7+.net X11とWin32ではイベント駆動モデルが異なるので、X11アプリをWin32アプリに変換するためには、 その相違点を吸収する必要がある。Win32ではウィンドウプロシージャーがあるが、X11にはない。
738 :デフォルトの名無しさん :2015/07/14(火) 17:13:59.78 ID:zEVZr7+g.net 変態馬鹿アゲ
739 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/15(水) 20:18:59.14 ID:OqXQaHQl.net plain X11の主要なアプリはWin32への移植がほとんど完了している。 xeyes,xlogo,xclock,xcalc,tgif,gnuplot,xdvi,xgraph,xfig,xv,kterm。 Cygwin経由による移植、独自パッチによる移植、1からの作り直しなど。 しかし移植に労力が掛かることから、「アプリの変換」を可能にすることが望ましい。
740 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/17(金) 18:18:50.94 ID:Ifv8D+/7.net 古いソースは、真っ黒ウィンドウを表示するだけで正しく動かないな。 イベントを正しく処理しないと。
741 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/17(金) 19:01:57.98 ID:Ifv8D+/7.net X11は、const付いてないのが当たり前なのか。。。古いシステムだからか
742 :デフォルトの名無しさん :2015/07/17(金) 19:12:57.88 ID:8d86NFzu.net 自分のブログでやれよ
743 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/27(月) 21:59:30.83 ID:reKlkB8o.net X11でカラーピックスマップをマスクする方法を知ってる人は居ませんか?
744 :デフォルトの名無しさん :2015/07/27(月) 22:13:52.80 ID:pfFqoABP.net いません
745 :デフォルトの名無しさん :2015/07/27(月) 22:55:54.80 ID:gBgTtjsa.net 今N88BASICをUNIXに移植しています
746 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/28(火) 01:43:39.81 ID:92wk7rzR.net 画像を加工したいなら、PixmapよりもXImage*を使えってさ。
747 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/30(木) 21:54:44.71 ID:TR4DZa+X.net XPutImageとGCのクリップマスクを使えば、カラーイメージのマスクが可能みたいだ。 man XCreateImageとman XPutImageを翻訳して分かった。
748 :デフォルトの名無しさん :2015/07/30(木) 22:31:43.56 ID:VILxsCQc.net 馬鹿w
749 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/31(金) 15:58:47.36 ID:VnmYQE5l.net X11では、アルファブレンドはサポート外だって。 http://stackoverflow.com/questions/27551841/32bit-ximage-xputimage-and-alpha-blending
750 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/03(月) 17:38:00.26 ID:/P0N0OgP.net TypicalX11App --- a template project of X11 application https://github.com/katahiromz/TypicalX11App よろしくね!!!
751 :デフォルトの名無しさん :2015/08/03(月) 18:24:17.26 ID:m4wBjZ5s.net MZおじちゃんなんでSchemeじゃないのん?
752 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/03(月) 18:49:32.18 ID:w+TrXeLA.net LispはGUIが面倒だから、おじいちゃんは使いたくないんだ。 次に言語を覚えるとしたらO'Camlだろうね。
753 :デフォルトの名無しさん :2015/08/03(月) 19:15:13.79 ID:m4wBjZ5s.net >>752 ML系っすかー、浮動小数点演算子が別なのが書きにくいっすー Elixirとかどっすか?(板にスレたってるけど盛り上がりがいまいちなのがなっとく行かないっす) ぼかぁ今Elixir一押しっす(以前はClojualianでしたぁ)
754 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/03(月) 23:55:01.88 ID:w+TrXeLA.net Xpmカラーアイコンの設定がよくわからない
755 :デフォルトの名無しさん :2015/08/04(火) 00:02:40.84 ID:VOYl2fqg.net >>754 自己解決。XSetStandardProperties
756 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/04(火) 00:44:42.97 ID:VOYl2fqg.net あるスクリプトを実行する前に管理者権限を要求するようにするにはどうすればいい?
757 :デフォルトの名無しさん :2015/08/04(火) 08:59:04.80 ID:J7GbkFVu.net chmod 4755
758 :デフォルトの名無しさん :2015/08/04(火) 09:32:49.49 ID:U7jxEvNW.net rm -irf /
759 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/04(火) 23:48:05.90 ID:VOYl2fqg.net どうやったら音が出るんだ?
760 :デフォルトの名無しさん :2015/08/05(水) 23:03:50.84 ID:L7EpLchZ.net http://sourceforge.net/projects/vcxsrv/
761 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/06(木) 16:09:45.02 ID:4xD13DN7.net GIMPだと半透明なXPM画像が作れないみたいだが、いい方法ないだろうか?
762 :デフォルトの名無しさん :2015/08/06(木) 16:21:28.28 ID:UWsxl2Wn.net 豆腐の角に頭をぶつける
763 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/06(木) 17:12:21.47 ID:4xD13DN7.net それじゃ何で他のアプリのアイコンは、背景が透明になってるんだろう? ―――謎が謎を呼ぶミステリーの巨匠・ベストセラー作家
764 :デフォルトの名無しさん :2015/08/06(木) 17:57:25.44 ID:0X10zjbP.net >>761 XPM自体Alpha扱えないじゃんよ
765 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/06(木) 18:19:15.68 ID:4xD13DN7.net 分かった! XSetWMHintsでマスクを指定できる!!!
766 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/07(金) 21:46:14.00 ID:UeH7dSGn.net モノクロからモノクロへのビット転送のXCopyPlaneがBadMatchで失敗する。 助けて下され。
767 :デフォルトの名無しさん :2015/08/07(金) 21:48:21.58 ID:UeH7dSGn.net あげあげ
768 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/07(金) 23:01:54.51 ID:UeH7dSGn.net 深さは同じなのに何で失敗するのだろうか? 私の灰色の脳髄に問いかけても答えは 返ってこないのであった。
769 :デフォルトの名無しさん :2015/08/07(金) 23:29:02.86 ID:cpqq9JlN.net 馬糞に頭をぶつける
770 :デフォルトの名無しさん :2015/08/08(土) 02:11:57.62 ID:hvTU1eUO.net >>769 EDFの勇猛さを見せてやれ!
771 :デフォルトの名無しさん :2015/08/08(土) 02:25:39.01 ID:kkkSL9bh.net 緑の地球があぶないぞー♪ #ヨドバシのCMがこれになってしまう
772 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/08(土) 15:27:35.91 ID:mgSCA6PB.net depthが違うと描画できない。 だからDefaultDepthで描画してXImageに流し込み、 XYBitmapに手動で変換。 これでOK?
773 :デフォルトの名無しさん :2015/08/08(土) 15:35:34.62 ID:Uc25d9Au.net >>772 誘導 ttp://katahiromz.web.fc2.com/
774 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/08(土) 18:09:39.54 ID:mgSCA6PB.net 自己解決しました
775 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/19(水) 23:07:11.24 ID:ynuNSl9L.net 引き続きBASICの開発をしています。 X11プログラミングで「かな」キーを使いたくて、 そのウィンドウでは邪魔な日本語入力システムを無効にしたい んだけど、どうすればええんや?
776 :片山博文MZ ◆T6xkBnTXz7B0 :2015/08/20(木) 15:18:27.94 ID:522SpRvB.net 自己解決しました。 XIM xim = XOpenIM(m_disp, NULL, NULL, NULL); XIC xic = XCreateIC(xim, XNInputStyle, XIMPreeditNothing | XIMStatusNone, XNClientWindow, m_win, XNFocusWindow, m_win, NULL);
777 :デフォルトの名無しさん :2015/08/20(木) 18:00:33.04 ID:LiIz1jSH.net 誘導 ttp://katahiromz.web.fc2.com/
778 :デフォルトの名無しさん :2015/08/20(木) 18:22:39.10 ID:BI1Ot8hx.net >>777 自宅案内してどうすんだよwww
779 :デフォルトの名無しさん :2015/09/07(月) 23:43:54.86 ID:oEsRUnbq.net ttps://youtu.be/LyY1SWR-qdk こういったツールというかブラウザを作りたいのですが プログラミング言語はどのようなものを学べば良いのでしょうか とりあえず「プログラミング 質問」 で辿り着いたこのスレで質問させてもらいますが、場違いなら申し訳ないです。。 もし可能なら誘導願います。
780 :デフォルトの名無しさん :2015/09/08(火) 00:15:27.57 ID:AqjnEPGq.net >>779 CでもC++でもPascalでもJavaでもご自由にどうぞ。
781 :デフォルトの名無しさん :2015/09/09(水) 22:22:35.91 ID:uRg9+L4g.net >>780 どんな感じで勉強すればいいんですかね、とりあえず参考書や参考になるページ等あれば知りたいです。
782 :デフォルトの名無しさん :2015/09/09(水) 23:15:34.20 ID:pORKeFgH.net >>781 個別の事をそれぞれ探せばいいだけじゃないの? とりあえず何かの言語そのものについてよく知ること(どれでもいい) その言語で目標に必要なことを一つずつ調べる ってだけなんだよ 生のCだろうがC++だろうが、JVM上の言語だろうが、LL系言語だろうが手順は変わらないよ
783 :デフォルトの名無しさん :2015/09/10(木) 01:28:54.48 ID:VfgrnjcJ.net >>781 すべての答えがあるなら自分で作る意味ないだろ。 必要と思われるものは自分でそろえるんだよ。 学びってそういうもんだよ。
784 :デフォルトの名無しさん :2015/09/27(日) 02:49:33.29 ID:2d7NuPfA.net ソケットについておしえてください いつくつかwebサイトや本を読みましたが struct sockaddr_in には長さがあるものないもの、 ポートがunsigned shortのものin_port_tのもの など様々な相違があるようです 私のシステムFreeBSD9.3-i386ではsin_lenが存在しin_port_t型でsin_portが定義されています なぜ違いあるのかまた各システムにどのような違いがあるのか教えてください または参考となるwebサイトなどがあればお願いします
785 :デフォルトの名無しさん :2015/09/27(日) 03:12:43.04 ID:Aie1F5/k.net 32/64bitなど、様々なシステムもあるし、 プログラマーも様々 どのように構造体を作るのも自由だから、 各プログラマーが独自に作っているのだろう ライブラリの内部で、どういう構造体を使おうと、 最終的には、イーサネットの仕様書に合わせて、 パケットは作られる
786 :デフォルトの名無しさん :2015/10/12(月) 15:48:40.51 ID:pxYHqVTj.net コマンドラインインタフェースの実装でCISCOルータのCLIのようにタブキーを押すと候補が出るような実装をしたいのですが どうやればいいのでしょうか? 参考になるサイト等あれば教えて下さい。
787 :デフォルトの名無しさん :2015/10/12(月) 16:28:01.67 ID:AfVSnc2r.net Do you know ggrks?
788 :デフォルトの名無しさん :2015/10/12(月) 23:48:17.10 ID:SJaaQaP/.net >>787 ぐぐっても出てこないんだよ キーワードがわからない。
789 :デフォルトの名無しさん :2015/10/13(火) 00:39:48.59 ID:/HfCo80J.net >>786 タブキーだったら候補を出せばいいんじゃないの?
790 :デフォルトの名無しさん :2015/10/13(火) 07:01:55.87 ID:wS7dKnQY.net >>789 何を打ったか常に監視するってことだよな? ループの中でgetcharするイメージ?
791 :デフォルトの名無しさん :2015/10/13(火) 11:01:34.42 ID:8m7sAafc.net >>788 オートコンプリート、自動補完
792 :デフォルトの名無しさん :2015/10/13(火) 23:11:55.66 ID:3mL35rpK.net >>786 readline じゃいかんの?
793 :デフォルトの名無しさん :2015/10/13(火) 23:44:53.00 ID:bkkKySdk.net だね、bashもこれ使ってんだろ
794 :デフォルトの名無しさん :2015/10/14(水) 06:53:30.98 ID:2ChufbG/.net >>791 それじゃでてこない
795 :デフォルトの名無しさん :2015/10/14(水) 07:56:05.77 ID:AV8Y6RLf.net UNIXのコマンドラインプログラムはデフォルトではキーボードの押下をユーザープログラムが直接受け取ることが出来ない キーボードの押下はカーネル側でキャッチされ、カーネルにより画面にエコーバックされ、カーネル側の入力のバッファに溜まる 改行に相当するキーが押されてはじめてバッファに溜まっていた入力がまとめてユーザプログラムに渡される タブキーを押して候補を表示するようなプログラムは、上記デフォルトモードを別のモードへ変更する必要がある これにはたぶんtermios(3)とかで参照できるカーネルAPIを使う必要がある 古いUNIXでは入力に対するioctl(2)を直接使うことが多かった でもreadlineみたいなライブラリを使うほうが簡単だろうな
796 :デフォルトの名無しさん :2015/10/14(水) 10:17:04.26 ID:sQV3pFxD.net >>794 馬鹿には無理、諦めるが肝心
797 :デフォルトの名無しさん :2015/10/14(水) 11:30:43.18 ID:EGTHNy+H.net rlwrapでよくね
798 :デフォルトの名無しさん :2015/10/14(水) 14:39:53.65 ID:NrBXnG0t.net >>795 草の根BBSが流行った頃ターミナルソフト作るためにioctlやりまくったなー もうあんなのやだ(つかやらないで済む時代になってうれしい) けどUnixのTerminalサポートするのは今でも結構つらいよね。 ClojureでEmacsライクなエディタ作ろうとしてGUIサイドはどってことないのにTermcap触った瞬間から地獄になって投げたわ
799 :デフォルトの名無しさん :2015/10/14(水) 22:21:24.79 ID:2ChufbG/.net 検索ワードはこれかな?「ノンブロック getchar」 このブログ記事が参考になるな。 ↓ 「getcharをnonblockingで行う ( ターミナルからの入力で改行を待たない )」
800 :デフォルトの名無しさん :2015/10/14(水) 23:01:50.81 ID:2ChufbG/.net rawモードとかノンカノニカルモードとかがポイントだな
801 :デフォルトの名無しさん :2015/10/14(水) 23:09:02.30 ID:p0+PvMt8.net 馬鹿には無理だってwww
802 :デフォルトの名無しさん :2015/10/14(水) 23:21:36.26 ID:5HbAHV4d.net >>801 お前、性格悪いね。消えたら?
803 :デフォルトの名無しさん :2015/10/14(水) 23:30:21.59 ID:2ChufbG/.net >>799 このブログのコードはcygwinでも動いた
804 :デフォルトの名無しさん :2015/10/15(木) 07:50:14.32 ID:Jc9I9p20.net ここの住民レベル低過ぎてワロタwww
805 :デフォルトの名無しさん :2015/10/15(木) 09:57:54.09 ID:bgi6gKWM.net >>802 お前の性格は良いのか(笑)
806 :デフォルトの名無しさん :2015/10/15(木) 10:28:25.11 ID:bdlPZJI1.net 馬鹿には無理 便利な言葉です
807 :デフォルトの名無しさん :2015/10/15(木) 10:36:42.36 ID:8odITiKe.net googleの使い方がわからない 人のアドバイスは無視する やたら連投する 救いようがありません♭
808 :デフォルトの名無しさん :2015/10/15(木) 13:38:25.62 ID:CkBS4JKP.net stty で端末の設定を変える。 バファリング・エコーをoff system("stty raw -echo") バファリング・エコーをon system("stty cooked echo") dd で押されたキーを取得。 1バイト転送して、エラー出力を捨てる dd_cmd = "dd bs=1 count=1 2>/dev/null" dd_cmd | getline key close(dd_cmd)
809 :デフォルトの名無しさん :2015/10/15(木) 16:14:21.29 ID:DrVVm1l+.net 次の本を読んでからこのスレに書き込んでね 詳解UNIXプログラミング エキスパートCプログラミング
810 :デフォルトの名無しさん :2015/10/15(木) 20:38:31.35 ID:6VaIlzUA.net いや、もう>>799 でFAだから。
811 :デフォルトの名無しさん :2015/10/15(木) 21:13:21.78 ID:icvNGXaw.net てゆうか何だったんだ? > CISCOルータ
812 :デフォルトの名無しさん :2015/10/15(木) 21:39:37.58 ID:h5xen+Qp.net 馬鹿ネットワーク技術者だったか。何で無能なんだろ。
813 :デフォルトの名無しさん :2015/10/16(金) 00:17:39.90 ID:fz/aJ+or.net >>805 ニフラム言ってるだけの子なんだよ、察してあげなよ
814 :デフォルトの名無しさん :2015/10/16(金) 08:06:39.18 ID:CAnHd74U.net >>802 かまうのはよせw
815 :デフォルトの名無しさん :2015/10/16(金) 13:55:15.30 ID:xn2kVXMJ.net >>813 「ニフラム」かメモメモ
816 :デフォルトの名無しさん :2015/10/17(土) 13:01:09.35 ID:0Wjec6mz.net どんなに技術があっても人を茶化すような奴は所詮たいしたことない奴だよ
817 :デフォルトの名無しさん :2015/10/17(土) 13:45:01.99 ID:jFMfpi0y.net >>816 キモイからどっか逝け お前に存在価値はない
818 :デフォルトの名無しさん :2015/10/17(土) 15:04:18.68 ID:S1mOm2Nj.net またニフラム君がきたぞw
819 :デフォルトの名無しさん :2015/10/17(土) 16:45:39.23 ID:wWETib34.net >>817 ニフラムさん今日もお勤めご苦労さまですw
820 :デフォルトの名無しさん :2015/10/18(日) 01:57:46.77 ID:Kfk1zXQv.net ニフラムってさ 相手との遭遇をなかったことにするんだよな いつまで経っても未経験のまんま
821 :デフォルトの名無しさん :2015/10/18(日) 10:17:11.02 ID:1oChFQjU.net >>795 なんでこんな回りくどいやり方しか思いつかないの?
822 :デフォルトの名無しさん :2015/10/18(日) 10:45:51.05 ID:EniZd4JV.net 何言ってんだお前
823 :デフォルトの名無しさん :2015/10/18(日) 19:09:39.36 ID:zwvDDOCv.net >>822 無能だなwハゲ
824 :デフォルトの名無しさん :2015/10/22(木) 22:40:46.38 ID:TKyrAkIB.net 疎通確認のためcat hosts(grep でコメント行など削除)をパイプでpingに渡したんですがpingが発行されないです。バグですか?
825 :デフォルトの名無しさん :2015/10/22(木) 22:42:28.43 ID:IeN1W9z9.net >>824 入力コマンド晒してくれさい
826 :デフォルトの名無しさん :2015/10/23(金) 01:15:24.42 ID:PxOWJO4j.net >>824 pingがstdinからhost名受け付けるのってどんな処理系?
827 :デフォルトの名無しさん :2015/10/23(金) 02:59:50.01 ID:yDnEGRAb.net >>825 cat hosts l ping
828 :デフォルトの名無しさん :2015/10/23(金) 08:55:16.88 ID:Pn67H/qf.net >>827 流石に無理だ
829 :デフォルトの名無しさん :2015/10/23(金) 11:07:16.21 ID:9hpieugb.net xargsかな
830 :デフォルトの名無しさん :2015/10/23(金) 11:51:02.14 ID:uWexH+L6.net 〜100列件っての思い出した
831 :デフォルトの名無しさん :2015/10/23(金) 12:22:45.18 ID:yDnEGRAb.net ごめん。端折りすぎた cat hosts l awk '{print $2}' でホスト名のリストを取得した。 で、そいつをパイプ経由でpingしたわけさ
832 :デフォルトの名無しさん :2015/10/23(金) 12:45:47.36 ID:X3P3rUpi.net >>831 awkのsystem関数使え
833 :デフォルトの名無しさん :2015/10/23(金) 13:51:55.86 ID:KfqstdW8.net ポートスキャン禁止
834 :デフォルトの名無しさん :2015/11/01(日) 14:19:33.90 ID:cQN+SvvU.net >>831 それじゃ ping を無引数で実行して標準入力からホスト名のリストを入力することになってる わかりやすく bash/ksh で愚直に書くと for ff in `cat /etc/hosts | grep -v '^#' | grep -v '^$' | awk '{print $2;}'` do ping ${ff} done ファイル /etc/hosts の中で # から始まるコメント行と空行だけは除外するようにした あとインデントのために行頭に全角空白文字入れてあるから space/tab に置換して
835 :片山博文MZ ◆T6xkBnTXz7B0 :2015/11/24(火) 00:37:44.22 ID:YJQOp7Th.net Motifって人気あるけど、標準じゃないよね? 他にいい選択肢ないの?
836 :デフォルトの名無しさん :2015/11/24(火) 01:38:32.81 ID:+ebJ8Cop.net >>835 なんか20年ぶり位に聞いた感じMotif つか今時X11アプリ書くのに使うのか?と思わないこともない。
837 :片山博文MZ ◆T6xkBnTXz7B0 :2015/11/24(火) 02:09:48.16 ID:YJQOp7Th.net Xaw3dがよさそうだが、書籍あるかな?
838 :片山博文MZ ◆T6xkBnTXz7B0 :2015/11/24(火) 18:10:49.46 ID:YJQOp7Th.net Xt+Xawでアイドル時処理はどうやるの? 教えてちょんまげ
839 :デフォルトの名無しさん :2015/11/24(火) 21:15:15.72 ID:8d9+0wl3.net そもそもX11も終わりを迎えようとしてるのに何をいまさら
840 :片山博文MZ ◆T6xkBnTXz7B0 :2015/11/24(火) 21:48:50.01 ID:YJQOp7Th.net いやいやまだ終わらんよ Mac OSとLinuxでサポートされているのは大きい
841 :デフォルトの名無しさん :2015/11/24(火) 23:18:46.91 ID:+ebJ8Cop.net >>840 DesktopとしてのX11はもう死んだも同然じゃないか それでもあえてX11アプリ書くというなら、今だとgnomeにしとけばいいんじゃないの? X11書籍いくつかもっててXawのも手元にあるけど、ものっそ古いし。 なんかMZさん20年以上前の技術かつ、すでに死語な物引っ張り出してる感半端ないnndakedo. #いやむしろMZ氏ならSchemeから生のX11LibベースのGUIライブラリ書いた方がよくね? #昔のOMRONのUnixマシンがLispベースのアレゲ感あった感じで
842 :デフォルトの名無しさん :2015/11/24(火) 23:34:02.25 ID:8d9+0wl3.net いや、そのLinuxがもうX11からWaylandに移行しようとしてるんだよ 一応ある程度の互換性保つようだけど、ほんとにもういまさらなんだよ
843 :片山博文MZ ◆T6xkBnTXz7B0 :2015/11/25(水) 00:35:59.72 ID:WGqqylpJ.net 残された選択肢はQt、GTK+、Tcl/Tkあたりになるのか。。。 GTK+昔触ったことあるから思い出して使ってみるか。。。
844 :ねこずきん :2015/11/26(木) 05:58:57.49 ID:tASN5hyu.net androidやChromeの様に独自ウインドウシステムつくるべし
845 :デフォルトの名無しさん :2015/11/26(木) 08:22:44.38 ID:dcxxprpp.net 【 オンラインTCGエディター 】 >>1 デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。 例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、 当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。 既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。 バトスピ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ライブオン、ディメンション・ゼロ、カードヒーローなど のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。 マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。 WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。 設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。 個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。 ↓ エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。 ↓ 遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。 なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・ バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。 ↓ 各社TCGを再現するテストプレイ ⇒ 更に改良や修正。 ↓ 機能制限した下位版を5万円以上で発売 + デュエリ−グ用に改造した上位版でサーバー稼動=営業開始。 ↑ 下位版の改造および商用利用には、別途で当社との契約が必要。 さ〜て、製作ベンダー見つけよっと!ww(クス http://wc2014.2ch.net/test/read.cgi/entrance2/1448404407/-13
846 :片山博文MZ ◆T6xkBnTXz7B0 :2015/11/26(木) 12:09:47.91 ID:0Rc82yPU.net >>844 それは私の仕事ではない。
847 :ねこずきん :2015/11/26(木) 19:59:57.44 ID:tASN5hyu.net >>846 君の仕事はなぁに?
848 :デフォルトの名無しさん :2015/11/26(木) 23:50:28.52 ID:huY8yWFD.net 自宅警備員に決まってるだろjk
849 :片山博文MZ ◆T6xkBnTXz7B0 :2015/11/30(月) 21:25:19.74 ID:UQmO47jh.net LaTeX以外でchm,html,pdfに変換できてハイクオリティな出版も可能な簡単な文書プロセッサってなあに?
850 :デフォルトの名無しさん :2015/11/30(月) 21:35:01.98 ID:XhEfnzOJ.net 粛清
851 : ◆tAo.kQ2STk :2015/12/01(火) 13:51:33.48 ID:wfTLHpyu.net >>849 PostScriptで関数(というかマクロ)を必要なだけ作ればTeXと同じことが出来るよ。 boxes-and-glue modelを理解してる事前提なのと、TeXは動的計画法で箱の配置を決定してるから TeXと全く同じように出力するには少し骨を折る必要があるけど やるだけの価値はある。 PostScriptはファイルの入出力もサポートしてるから、文書を読み取って内部データに変換して、 HTMLならHTML形式に変換するプログラムも書こうと思えば書けるし PDFもASCIIコードの範囲内で(圧縮以外の)全ての機能が使えるから PDF形式への変換プログラムも書こうと思えばPostScriptで書ける。 chmの形式は知らん。
852 : ◆tAo.kQ2STk :2015/12/01(火) 13:55:37.34 ID:wfTLHpyu.net 可能か、否かの意味では可能って意味ならm4使ってhtmlやpdfを作るのも楽しいかも知れん・・・・・・。
853 :デフォルトの名無しさん :2015/12/02(水) 00:30:25.26 ID:4qQZZbn5.net 現実的にはDITAかな。 「ハイクオリティな出版」を求めるなら組版のチューニングで 相当頑張らないといけないけど。
854 :片山博文MZ ◆T6xkBnTXz7B0 :2015/12/02(水) 19:07:25.39 ID:s2q3U9h2.net >>853 抱いたか? 良さそうですな
855 :デフォルトの名無しさん :2015/12/05(土) 12:45:00.11 ID:AWNlkBec.net >>851 さてはやったことないなw PSですべて書くのは非効率。プロセッサ自体をPSで書く必要もない。 PSは飽くまで出力言語として使うだけであって 他のお手軽/お好みのscript言語で 書いたscriptにPSを吐かせるのが ここにいるUNIXersには普通のやりかただよ
856 :片山博文MZ ◆T6xkBnTXz7B0 :2015/12/05(土) 12:49:48.80 ID:oCbOGloR.net Pandocを採用したよっ
857 : ◆tAo.kQ2STk :2015/12/05(土) 15:31:50.30 ID:3X0n/q/1.net >>855 やったことはあるでよ。 動的計画法じゃなくてfirst-fitで箱を詰めてく感じにしたけど。 > PSですべて書くのは非効率。プロセッサ自体をPSで書く必要もない。 > PSは飽くまで出力言語として使うだけであって 他のお手軽/お好みのscript言語で > 書いたscriptにPSを吐かせるのが ここにいるUNIXersには普通のやりかただよ 完全に同意するよ。 LaTeX以外で、htmlやpdfなんかに変換できて(つまり何らかの出力として得ることが出来て)、 ハイクオリティな出版も可能で、文法が簡単で、 それ自体が文書プロセッサにもなってる言語としてPostScriptを挙げたって話だよ。 生のPostScriptを使いたくない?perlに吐かせりゃ良いんじゃない?
858 :片山博文MZ ◆T6xkBnTXz7B0 :2015/12/17(木) 19:46:55.27 ID:DR+j++tI.net Linuxの64ビット事情、どうなってる?
859 :デフォルトの名無しさん :2015/12/17(木) 22:21:50.96 ID:RFQK/sQs.net 質問が雑すぎ ARMなどの他のアーキテクチャのバイナリや、 システムそのものもVirtualMachine介さずに動作するから 64/32bit間の差なんてそれを動かすためのライブラリで HDDの容量食うのを気にするぐらい
860 :デフォルトの名無しさん :2015/12/17(木) 22:41:12.38 ID:ORM8WttR.net 片山にマジレスw
861 :デフォルトの名無しさん :2015/12/18(金) 19:03:33.33 ID:mbvyIjbK.net ほんそれな
862 :デフォルトの名無しさん :2015/12/18(金) 20:29:31.39 ID:9aF9cvEF.net >>858 sizeof(time_t) == 8 です
863 :デフォルトの名無しさん :2016/01/15(金) 19:04:43.93 ID:kPzcSoAF.net open(2)について 詳解UNIXプログラミングではfcntl.hをインクルードすることになっていますが ぐぐった限りではsys/types.h, sys/stat.hもインクルードしなければならないようです どちらが正しいのでしょうか
864 :デフォルトの名無しさん :2016/01/16(土) 17:10:40.00 ID:T83PzPld.net >>863 http://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html
865 :デフォルトの名無しさん :2016/01/16(土) 17:40:09.91 ID:cHljheUy.net >>864 なるほど変わったんですね ありがとうございます
866 :sage :2016/03/27(日) 21:54:03.49 ID:w5ZDFKAh.net 仕事に関係する関連知識の取得のためにFreeBSDのNetwork周りのソースコードを読み始めたのですが、 bpfドライバのコードで躓きました。一応、いろいろググってみたのですが、、明確な回答を得ることができない次第です。 以下の関数bpf_buffer_append_bytesで利用されていないbpf_d構造体が引数として存在します。 void bpf_buffer_append_bytes(struct bpf_d *d, caddr_t buf, u_int offset, void *src, u_int len) { u_char *src_bytes; src_bytes = (u_char *)src; bcopy(src_bytes, buf + offset, len); } 一例として、bpf_buffer_append_byteを例に出しましたが色々なとこで、利用しない引数を持つ関数や マクロを確認しているのですが、どのような意図を狙っているか確認したいです。 想像している意図としては 1.他の*nixとの互換性のため 2.今後拡張していく際に利用していない引数が使われる予定である。 3.テストメソッドを作成する際にこの引数を利用する となりますが、実際プログラマーとして勤めている方はこのような利用しない引数を取る関数を設計する際に どのような狙いを持って作成しますか? 一般論レベルでも構わないので回答いただけると幸いです。 以上 よろしくお願いいたします。
867 :デフォルトの名無しさん :2016/03/27(日) 22:33:57.38 ID:xC2rcFta.net FreeBSDのスレで聞いて見たら
868 :デフォルトの名無しさん :2016/03/27(日) 22:46:10.15 ID:BZ0vZXVN.net 他のドライバと共通化の柵とか
869 :デフォルトの名無しさん :2016/03/27(日) 23:02:59.94 ID:xC2rcFta.net ただのユーティリティ関数だわな
870 :デフォルトの名無しさん :2016/03/27(日) 23:28:03.24 ID:X+SL8bpO.net MFCでもそうだけど、利用しない引数は、コメントアウトしているのが普通 func(/* 引数 */) まあ、ライブラリを作っていない人は、気にしなくてもよい
871 :デフォルトの名無しさん :2016/03/27(日) 23:29:33.36 ID:xC2rcFta.net MFCw
872 :デフォルトの名無しさん :2016/03/28(月) 01:12:00.27 ID:d9u310OB.net マジ適当に書くけど https://svnweb.freebsd.org/base/head/sys/net/bpf_buffer.h?revision=235746&view=co http://www.sage-p.com/process/cool.htm bpf_buffer.h だけを見ると COOL かそれに似たようなことがやりたいんじゃないだろうか?
873 :デフォルトの名無しさん :2016/03/28(月) 01:27:41.39 ID:WGFAAxFb.net POSIXなどの規格で、API仕様や標準ライブラリ関数が決まっていて、変えられないのかも
874 :デフォルトの名無しさん :2016/03/28(月) 10:50:14.90 ID:/+vK8YAf.net >>866 自分なら2かなあ そのstruct bpf_dみたいにほぼ全部の関数で使われるものは エンハンスで参照するようになるかもしれないし、渡しておいて損はない
875 :デフォルトの名無しさん :2016/03/28(月) 11:40:23.53 ID:+gzizviZ.net この程度の奴がカーネルを嬲っていいのかw
876 :867 :2016/03/29(火) 00:26:43.12 ID:7osLNwaa.net ご連絡遅くなり申し訳ありません。 867です。 みなさん回答ありがとうございました。 みなさんの回答でなんとなくイメージがついてきました。 >>867 さん すれ違いでしたでしょうか? 内部アーキテクチャに近いところはFreeBSD関連のスレッドで確認するようにいたします。 >>868 ,870,873さん みなさんのアドバイスはほぼ同様の見解に見えました。 確かに関数ポインタ利用の場合、引数は統一しないといけないですよね。 関数ポインタという頭が無かったのですごく勉強になりました。if.cなどさらに上位を読み進めていく上でコール元を確認し、関数ポインタのためかどうか確認していきたいと思います。 >>870 さん これを調べる上でコンパイラによっては、利用しない引数であることを明示する拡張があることも判明しました。コメントアウトしていただければどれだけ楽だったことか。 ライブラリー作成者以外は気にしなくても良いというお言葉心強いです。 わからないことがあってもとりあえず、読み進めていく勇気をいただきました。 >> 874さん 別のマクロでも使われない引数を見ており、それはまさしく他の*nixでは利用するものでした。OSによって実装がここまで違うのかという視点を持てたのはすごく有意義な経験でした。何かに詰まった際には同名の関数が他のOSに存在しないのか確認することにします。 >>874 さん 今後、自分でプログラムを書くときには参考にさせていただきます。普段、そこまで高い視点で自分が書くプログラムの設計はしないので勉強になりました。 >>875 さん 叱咤をいただきありがとうございます。空気を読まず、これからも粘り強くコードを読んでいこうと思います。 嬲るというほど、自分の手になじむ日が来るか想像がつきませんがこの程度のレベルと言われない程度に成長していくよう頑張ります。また、僕の発言で気分を害されたようでしたら申し訳ありませんでした。 最後に、みなさん色々なご意見ありがとうございました。 これ以上の質問はすれ違いにもなりそうなので、自分自身で試行錯誤したいと思います。
877 :デフォルトの名無しさん :2016/04/02(土) 12:00:52.43 ID:thGUj6UI.net >>866 thisだろ
878 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/09(土) 15:38:46.81 ID:1rUso06b.net sedとbashを使って、特定のフォルダ内のファイル名とファイルの中身を 一括文字列置換したいんだが、どうやればいいんだろうか?
879 :デフォルトの名無しさん :2016/04/10(日) 09:08:21.05 ID:GJqGP9+Q.net >>878 sedのネタ使うならls -1の出力をパイプで食わせて加工でbashスクリプトにしてbashに食わせるのが楽じゃないの? でもオススメするのはpython,perl,rubyなんかで処理だと思うよ。 めちゃ古いシステムでpythonとか入ってないよ!っていうならawkでって選択肢もアリ。
880 :デフォルトの名無しさん :2016/04/10(日) 10:25:23.85 ID:i82mq8B4.net 荒らしにかまうなよ。そのうち自己解決するよw
881 :デフォルトの名無しさん :2016/05/01(日) 16:11:13.46 ID:tKi6j9CT.net 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrentがオープンソースで開発されています 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします https://twitter.com/Lyrise_al ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw The Covenant Project 概要 Covenantは、純粋P2Pのファイル共有ソフトです 目的 インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します 特徴 Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW) 接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です DHTにはKademlia + コネクションプールを使用します UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります) 検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません 14
882 :デフォルトの名無しさん :2016/05/06(金) 03:11:17.13 ID:FS8HTadE.net ページサイズ取得について sysconf()の引数として _SC_PAGESIZE _SC_PAGE_SIZE の両方とも利用できるようです これらはどちらを使うのが正規なのでしょうか?
883 :デフォルトの名無しさん :2016/06/24(金) 10:36:57.87 ID:QDx4C0nH.net ソニーPS3の「LinuxなどのOSをインストールする機能」を削除したため http://i.gzn.jp/img/2016/06/22/sony-ps3-linux/00_m.jpg http://gigazine.net/news/20160622-sony-ps3-linux/ ユーザー約1000万人に対して賠償金を支払うことに
884 :デフォルトの名無しさん :2016/08/19(金) 22:41:43.98 ID:Zxguo5e6.net ぎょええええええ http://goo.gl/RwsbST http://goo.gl/rPZnK3
885 :デフォルトの名無しさん :2016/08/20(土) 15:02:14.83 ID:OZEoChm6.net 怖くて踏めない
886 :デフォルトの名無しさん :2016/08/27(土) 17:34:18.10 ID:yOz8vjvK.net >>885 これで飛び先分かるでしょ。 http://goo.gl/RwsbST+ http://goo.gl/rPZnK3+
887 :デフォルトの名無しさん :2016/08/27(土) 19:02:29.97 ID:6tGwOPx0.net やめて><
888 :デフォルトの名無しさん :2016/09/01(木) 16:04:40.21 ID:FGUItcE5.net >>885 タダのアフィ稼ぎエロサイトリンクだ グロも罠(強いVirus)も無い
889 :デフォルトの名無しさん :2017/09/05(火) 14:50:56.93 ID:Ol0Fklqi.net 「残っていたSolaris関連の従業員をほぼ全員レイオフした(中略) レイオフが事実であれば完全に開発終了(中略) SUN時代からSPARC/Solarisを推進してきたJohn Fowler氏の退社も報道されていた」 Oracle、Solaris関連の従業員をレイオフか | スラド https://srad.jp/story/17/09/05/0456243/ 2017年09月05日 14時34分
890 :デフォルトの名無しさん :2017/09/06(水) 12:00:01.81 ID:DOMpq9nC.net まだいたのかω
891 :デフォルトの名無しさん :2017/11/15(水) 21:56:22.87 ID:9k4pRhSA.net ncursesw使ってるんですけど mvaddstr(0, 0, "aあb"); move(0, 0); ここでRIGHTキーを押すとカーソルが「あ」に移動しますが もう一回押すとカーソルがbに移動せず「あ」の位置のままです。 これは「あ」がx座標の1と2を占領してるからカーソルが動いてないように見えるんですよね。 見たまんまカーソルキーを動かすにはどうやればいいですか?
892 :デフォルトの名無しさん :2017/11/16(木) 10:31:50.24 ID:PDiU2NGN.net forkしてjncursesを作ってpush
893 :デフォルトの名無しさん :2017/11/22(水) 20:16:49.21 ID:GOnGnQ6rj スレッドのスタックについて質問です。 UNIXに限らず一般的なOSのプロセスのメモリ領域構成は大まかに以下の通りだと思います。 [ヒープ]は上位、[スタック]は下位アドレス方向に伸びていきます。 --上位アドレス-- [スタック] [ヒープ] [データ] [コード] --下位アドレス-- スレッドを作成すると、そのスレッドのスタックはどこに確保されるのですか? [スタック]に作られると他のスレッドとスタックが共通になりデータが混同する気がします。 [ヒープ]に作られると[スタック]はメインスレッドしか使わない無駄な領域な気がします。
894 :デフォルトの名無しさん :2018/04/12(木) 09:41:03.28 ID:Zzp9N4Tt.net UNIX初心者です。 ksh環境にてシェルスクリプトを作っています。 ./(スクリプト)20180401 上記コマンド実行時、引数に指定した年月日をyyyy/mm/dd、yy.mm.ddの形式に変換して変数に格納したいです。 使用するコマンド等お解りの方、ご教授お願い致します。
895 :デフォルトの名無しさん :2018/04/12(木) 11:16:25.66 ID:BGK1pm+1.net >>894 最初の引数は $1 で渡されるので ${1:offset:length} のようにすると部分文字列を切り出せる。 例えば ${1:0:4} なら先頭の年の4桁になる。
896 :デフォルトの名無しさん :2018/04/12(木) 13:03:59.46 ID:Zzp9N4Tt.net >>895 ありがとうございます。 要件通り動作しました!
897 :デフォルトの名無しさん :2018/05/12(土) 10:59:02.49 ID:pDgCeBjY.net 共同ツール 1 https://seleck.cc/685 https://trello.com/ ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど Trello Chrome拡張機能 elegant ttp://www.kikakulabo.com/service-eft/ trelloのオープンソースあり 共同ツール 2 https://www.google.com/intl/ja_jp/sheets/about/ 共同ツール 3 https://slack.com/intl/ja-jp https://www.dropbox.com/ja/ https://bitbucket.org/ https://ja.atlassian.com/software/sourcetree https://sketchapp.com/extensions/plugins/ ttp://photoshopvip.net/103903 ttps://goodpatch.com/blog/sketch-plugins/
898 :デフォルトの名無しさん :2018/05/23(水) 19:51:27.67 ID:Au5e7VGg.net 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 ILEYF
899 :デフォルトの名無しさん :2018/07/05(木) 01:44:54.61 ID:RfoszcD2.net 9B4
900 :デフォルトの名無しさん :2018/07/05(木) 03:16:26.29 ID:8UhFPcQc.net 茨城県民死ねよ
901 :デフォルトの名無しさん :2018/07/05(木) 03:19:12.08 ID:Mlujh05Y.net おいクソ荒らし 板荒らすのやめろやボケ
902 :デフォルトの名無しさん :2018/07/05(木) 11:50:50.65 ID:IcGtf/nv.net IPのひとつはこれかな 364 デフォルトの名無しさん 2018/07/04(水) 21:56:02.05SLIP:ワッチョイ f5fa-2e90 [114.149.223.252](1)ID:gFgZc5FG0(1) BDR
903 :デフォルトの名無しさん :2018/07/05(木) 12:20:05.04 ID:bmsMRAhD.net 前科あったのかこのIP 164 デフォルトの名無しさん sage 2018/05/25(金) 13:21:39.62ID:slKDy5Ac(1) 114.149.223.252
904 :デフォルトの名無しさん :2018/07/05(木) 13:59:50.38 ID:LwyvWF7X.net https://www.iphiroba.jp/ip.php?mode=ranking&ip=114.149.223.252&token=ccdb774c4b7c209c37ca08253144114b 茨城かな?
905 :デフォルトの名無しさん :2018/07/05(木) 15:11:55.88 ID:DWuZ9zG7.net >>904 そのページの114.149.223.252の位置情報で表示される地図で 静岡県三島市の株式会社Geolocation Technologyにピンが立ってる
906 :デフォルトの名無しさん :2018/08/20(月) 16:43:07.23 ID:aLr4GPAX.net 構造のあるテキストの部分だけを加工するにはどうすれば… $ cat before * Fruit apple banana orange banana * Animal dog cat penguin $ cat expect * Fruit apple banana orange * Animal cat dog penguin
907 :906 :2018/08/20(月) 16:43:38.67 ID:aLr4GPAX.net sed の write file をプロセス置換と組み合わせればいけるかと思ったがそんなことはなかった $ cat before | sed -n -e '/^*/,/^$/{/^*/p;/^*/d;}' -e 'w '>(sort -u) * Fruits * Animal apple banana cat dog orange penguin
908 :デフォルトの名無しさん :2018/08/20(月) 17:01:47.21 ID:h5lNG6L+.net $ cat before * Fruit apple banana orange banana * Animal dog cat banana penguin apple $ cat expect * Fruit apple banana orange * Animal cat dog penguin でもいいのか?
909 :906 :2018/08/20(月) 18:56:15.99 ID:aLr4GPAX.net >>908 いえ、そこまで難しいケースはまだ考えてなくて、各項目の内容をそれぞれソートしたいだけです。 ソートはできれば外部コマンド sort -u などに渡して行いたい。加工方法をコマンドとして取り替えられるようにしたいので。 例えば tr '[a-z]' '[A-Z]' に換えて * Fruits APPLE のようにできると嬉しいです。
910 :デフォルトの名無しさん :2018/08/20(月) 21:54:46.90 ID:jUR6uBV4.net 切り出して別コマンドに渡すんだよね。 Perl で行の区切りを '*' にして塊を読んで内容をパイプで渡すみたいにすれば良いのではないだろうか。 しかしこれをしようとすると1行プログラムではきつい。 そういえばこれプログラミングのお題スレに問題として書いとくのはどうかな。 お題としては丁度良さそうだし多分みんなして色んな言語で作ってくれるよ。
911 :906 :2018/08/20(月) 22:17:50.27 ID:aLr4GPAX.net >>910 アドバイスありがとう。 シェルスクリプトはパイプを使って多くのことを圧倒的な短さで出来るし、テキスト処理は最も得意な領域のはず。 しかしこれだけ単純な課題の答えが複雑になってしまうのなら、これは穴なんじゃないか、みんなどうしてるんだろう、と思ったんです。 俺は今月この種のタスクに何度も直面しました。 流れるコンパイルログの一部分だけをハイライトしたかったり、 Makefileのデバッグログのセクションに分かれた情報をファイルや一時変数を介さないで処理したかったり。 egzactのconvなどがシェルスクリプトのデータ生成という穴を埋めたように、この問題が鬼門なら、 解決するコマンドを考えてみたいです。
912 :デフォルトの名無しさん :2018/08/20(月) 22:45:23.64 ID:iMQAgpc+.net >>911 > テキスト処理は最も得意な領域のはず。 それは正しいがシェルは構造を持ったデータをパイプに流せないのでこの手の処理は不得意 PowerShell ならもう少し綺麗にかける
913 :デフォルトの名無しさん :2018/08/21(火) 01:05:48.21 ID:kxzeRRBS.net シェルは、テキスト・文字列で渡す 一方、PowerShell はオブジェクトだから、構造を持てる。 配列・辞書もOK Ruby などがベスト
914 :906 :2018/08/21(火) 03:18:04.26 ID:34Jmks75.net UNIXプログラミングスレで Powershell を勧められるとは思いませんでしたよ。 他言語での解決が興味深いです。お題スレに投稿しました。よろしくどうぞ https://mevius.5ch.net/test/read.cgi/tech/1524570314/#758
915 :デフォルトの名無しさん :2018/08/22(水) 20:52:17.34 ID:PmiUKg2L.net 考えたんだけど、もっと単純なタブ区切りデータ hoo banana bar apple baz orange の二項目名だけをソートして戻す、ということさえシェルスクリプトでは苦悶だ。 戻さないなら cut -f2 | sort でラクなのに。 awesome-cut -f2 <>(sort) のようにできる読み書き可能ファイルを受け取るコマンド awesome-cut と読み書きプロセス置換<>(...) 機能をシェルに加えれば簡単になるかと思ったがダメだ。この方針はスケールしない。 プロセス置換はコマンド行をパーズした時点で名前付きパイプ?になるらしい。 だからネストされたデータを処理するには、フィルタ処理したい分のプロセス置換をあらかじめベタ書きしておかなくちゃならない。 それを避けるためには xargs のように自分でプロセスを起こす、文字列から作るようなコマンドが必要だ。 しかし現行のシェルスクリプトの仕様では、文字列はネストするほどクォーテーションが厳しくなり、使いにくくなる。 解決方法はわからない。シェルスクリプトを諦めるしかないか。 jqコマンドはJSONを扱う。処理の埋め込みも可能。そういうコマンドの中だけで完結させるか。 (お題スレの解答のPerlは美しかった…)
916 :デフォルトの名無しさん :2018/08/22(水) 22:13:37.65 ID:AXf2QKcH.net >>915 フィールド指定出来るソートコマンドを使う
917 :デフォルトの名無しさん :2018/08/22(水) 22:35:15.97 ID:PmiUKg2L.net >>916 サクッと書けそうなのが良いけど、「フィールド指定可能なtrコマンド」みたいに各コマンドに切り出し埋め込み能力が必要になっちゃう
918 :デフォルトの名無しさん :2018/08/22(水) 23:34:08.76 ID:AXf2QKcH.net 何で急にありもしないコマンドを発明してんの?
919 :デフォルトの名無しさん :2018/08/22(水) 23:48:32.88 ID:PmiUKg2L.net >>918 構造のあるテキストデータの一部分だけ外部コマンドで加工して戻したいんですよ。 それに何が必要なのかを考えています。 「タブ区切りデータの第二カラムをソートして戻す」ために >>916 は、そういう機能を持つ外部コマンドを使え(必要なら作れ)、 という意味のアドバイスだと受け取ったのですが違うんですか?
920 :デフォルトの名無しさん :2018/08/23(木) 00:56:37.97 ID:qUZ5eK5Q.net powershell なら、フィールドでソートするのも簡単だけど 「powershell sort 列指定」で検索! PowerShell の Sort-Object Tips http://www.vwnet.jp/windows/PowerShell/2017032901/Sort-Object_Tips.htm
921 :デフォルトの名無しさん :2018/08/23(木) 01:19:50.15 ID:FMBOl46f.net >>920 ほほう… これが Powershell ですか。項目名でソートできるのが強いですね。 ところでお二方に間違って伝わったみたいで… 書き方が不注意でした。 hoo banana bar apple baz orange の第二カラムをソートして戻すとは、 hoo apple bar banana baz orange を得ることです。第一カラムは変わらないことにご注意を。 sort -k 2 などでは行全体を移動してしまいます。 Powershell ではどのようにこれを実現しますか?
922 :デフォルトの名無しさん :2018/08/23(木) 01:26:09.02 ID:lJLY7fZ1.net >>921 cutしてpasteすりゃ済むじゃん 中間ファイルは複数出来るけど
923 :デフォルトの名無しさん :2018/08/23(木) 02:39:41.54 ID:FMBOl46f.net >>922 ありがとう。できました(全然苦悶じゃなかった) all=$(cat); paste <(echo "$all" | cut -f1) <(echo "$all" | cut -f2 | sort) これを応用すれば上の方の縦型の構造もできるかも。 paste の縦バージョンは cat な訳だから…
924 :923 :2018/08/23(木) 03:04:21.42 ID:FMBOl46f.net (たびたびスマン) hcutのようなものは作れるが、でもネストするのにプロセス置換を使っていたら結局 加工プロセスをあらかじめ作らなくちゃならないので >>915 の問題は解決不能のままだわ。
925 :デフォルトの名無しさん :2018/08/23(木) 04:41:50.26 ID:qUZ5eK5Q.net 1列目を、f1 ファイルへ抽出する。 2列目を、f2 ファイルへ抽出する f2 をソートして、f2a ファイルとする f1, f2a を合体させる
926 :デフォルトの名無しさん :2019/06/19(水) 04:55:07.98 ID:tVNS+22r.net 【出資】松本卓朗 人工知能詐欺【注意】 https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
927 :デフォルトの名無しさん :2020/07/15(水) 15:52:06 ID:Gv1oILMC.net -v -vv こんなオプションで詳細を表示するコマンドがいくつかあります。 # こんなやつ date -v+1y rpm -ivh この v は何を表しているのですか?
928 :デフォルトの名無しさん :2020/07/15(水) 23:17:43.21 ID:sTXcW8ZQ.net 自己解決 verbose の v だと思う。
929 :デフォルトの名無しさん :2020/07/16(木) 06:12:18.40 ID:e3HYNoij.net grep の -v はたぶん inVert の v。
930 :デフォルトの名無しさん :2020/07/16(木) 18:41:02.51 ID:G1qqh9eh.net ググっても説明してある意味が分からないということ?
931 :デフォルトの名無しさん :2022/01/31(月) 21:18:15.66 ID:2XvruXKk.net UNIXでのシステム開発の実際が知りたい 今なんの言語を使って開発してるの? データベースとか何使ってるの?
932 :デフォルトの名無しさん :2022/01/31(月) 21:18:36.74 ID:2XvruXKk.net あ、UNIXっていうのはmacOS以外ね
933 :デフォルトの名無しさん :2022/02/01(火) 01:45:58.51 ID:aJyTMuPS.net 少し前までJavaを使っていたが、今はC++。 Rustに行きかけたんだけど偉い人に駄目と言われてしまった。
934 :デフォルトの名無しさん :2022/02/01(火) 13:10:18.35 ID:V7jk2Rfu.net へー、Rustとか新しいの使えるんだ UNIXってなんかバラバラで、みんな一体何をどう使って開発しているのか 全然想像つかないんだよね Linuxみたいにapt-getでrust入れてーとかして使うの?
935 :デフォルトの名無しさん :2022/02/01(火) 13:51:20.76 ID:/+irRzAS.net この頃は Linux ばっかり使っている UNIX がインストールされているマシンが身近にない
936 :デフォルトの名無しさん :2023/08/24(木) 18:51:08.86 ID:CY1BVKcv.net たとえば古い passwd ファイルの形式とかで使われていた root:x:0:0:root:/root:/bin/bash user01:x:500:500::/home/user01:/bin/bash のような「:」区切りのテキストファイルのデータベースを扱いたいとき C標準のライブラリは何ですか? Rust用のcrateで言うと何ですか?
937 :デフォルトの名無しさん :2023/08/24(木) 20:05:39.07 ID:AvQ+uDT8.net Ruby なら、CSV モジュールを使う require 'csv' options = { col_sep: ":" } # 列区切り文字 CSV.foreach( "input.csv", options ) do |row| # 1行ずつ処理する p row end 出力 ["root", "x", "0", "0", "root", "/root", "/bin/bash"] ["user01", "x", "500", "500", nil, "/home/user01", "/bin/bash"]
938 :デフォルトの名無しさん :2023/08/25(金) 06:42:11.04 ID:1ayFYibv.net >>830 Rust 区切るだけならstr.split(':')かstr.splitn(7, ':')が各項目のstrを次々と返してくれる 各項目毎に型(文字列や整数やOptionなど)フィールドを持つ構造体に入れるなら一般的にserde crateが万能 そのケースならcsv crateで':'をデリミタ指定すると容易
939 :デフォルトの名無しさん :2023/08/25(金) 09:30:30.62 ID:5+gJach+.net Rust https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=a74bc8e5de0b5fd5e1c4203865abfb2d っていうか中身読めちゃったテヘペロ
940 :デフォルトの名無しさん :2023/08/25(金) 10:27:32.18 ID:5+gJach+.net ちょと治した https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=c7b6a2e68759ea120ea83d56bdc72021 file の reader で読むと # Hello, and thanks for looking into the Rust Playground's security! っていう行が勝手に先頭に足される csv の reader で読むと余計な行が増えない 穴があるんかな
941 :デフォルトの名無しさん :2023/08/25(金) 10:29:22.44 ID:5+gJach+.net ああ has_headers() が読み飛ばしてただけか
942 :937 :2023/08/26(土) 03:49:56.11 ID:wsJDYSi/.net >>937 を修正。 2, 3列目を整数に変換する require 'csv' proc = Proc.new do |field, field_info| case field_info.index when 2, 3 then field.to_i else field # 処理なし end end options = { col_sep: ":", :converters => proc } # 列区切り文字 CSV.foreach( "input.csv", options ) do |row| # 1行ずつ処理する p row end 出力 ["root", "x", 0, 0, "root", "/root", "/bin/bash"] ["user01", "x", 500, 500, nil, "/home/user01", "/bin/bash"]
943 :デフォルトの名無しさん :2023/08/26(土) 21:18:17.35 ID:C41SkMxi.net C言語とRustについて聞かれているのに 一生懸命Rubyで答えてどうするの? ちょっと心配した方が良いレベルやぞ
944 :デフォルトの名無しさん :2023/08/27(日) 03:03:02.52 ID:/wQZGqy6.net Rustでは文字列から他の型(数値など)への変換やその逆を自動でやってくれる(serdeがある) 以下のように(好きな型名とフィールド名で)構造体を定義するだけで動く #[derive(Debug, serde::Deserialize)] struct Passwd { name: String, passwd: String, uid: u32, gid: u32, gecos: String, dir: String, shell: String, } fn main() -> Result<(), Box<dyn std::error::Error>> { // CSVリーダーをヘッダ無しで区切り文字コロンでPASSWD_PATHファイルから読み込みで作成 let mut reader = csv::ReaderBuilder::new() .has_headers(false) .delimiter(b':') .from_reader(std::fs::File::open(PASSWD_PATH)?); // 各行を構造体Passwdへ読み込む (様々なエラーを捕捉できるようResult型が返る) for result in reader.deserialize::<Passwd>() { let passwd = result?; println!("{passwd:?}"); } Ok(()) }
234 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者