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
探検
UNIXプログラミング質問すれ Part10
レス数が900を超えています。1000を超えると表示できなくなるよ。
1unco ◆manko/yek.
2011/04/18(月) 17:06:36.772011/04/19(火) 17:01:07.44
2
2011/04/20(水) 02:18:25.36
2011/04/20(水) 13:43:31.57
2011/04/25(月) 00:26:08.55
cursesで文字列でないワイド文字を1文字出力する関数を教えてください
2011/04/25(月) 00:38:35.81
unix板にも、linux板にも、同じスレが有るんだな
これが
これが
2011/04/25(月) 12:19:13.04
>>7
ncursesのmanpageのncurseswの項目を読んでください。
ncursesのmanpageのncurseswの項目を読んでください。
10 忍法帖【Lv=16,xxxPT】
2011/04/27(水) 17:45:17.962011/04/28(木) 01:20:58.11
お前が読め
12デフォルトの名無しさん
2011/05/04(水) 02:32:26.37 XLibを使ったプログラムを作ってるんだけど、
RootWindowでルートの画面を取得して縦横のサイズを見ると、
0になるんですが、スクリーンのサイズを取得する方法を教えて下さい。
RootWindowでルートの画面を取得して縦横のサイズを見ると、
0になるんですが、スクリーンのサイズを取得する方法を教えて下さい。
2011/05/04(水) 02:58:50.47
取得できました。
2011/05/04(水) 17:26:56.21
どうやって?
2011/05/05(木) 02:52:29.69
>>14
該当箇所を消してしまったので、覚えてませんが、XGetWindowAttributes
の引数にルートを渡すと、スクリーンのサイズが取得出来ました。
ところで、リモートのXにログインする方法を教えて下さい。
VNCモドキを作ってるのですが、そもそもXの認証を行う方法が分かりません。。
該当箇所を消してしまったので、覚えてませんが、XGetWindowAttributes
の引数にルートを渡すと、スクリーンのサイズが取得出来ました。
ところで、リモートのXにログインする方法を教えて下さい。
VNCモドキを作ってるのですが、そもそもXの認証を行う方法が分かりません。。
2011/05/06(金) 12:55:34.62
xauth関連のコード読んで。
ただ独自接続管理ならsshのX forwardingを参考にしたほうがいいかもしれないが。
ただ独自接続管理ならsshのX forwardingを参考にしたほうがいいかもしれないが。
2011/05/09(月) 20:23:31.51
>>16
XCBのソースを見ると書いてありますね。
XCBのソースを見ると書いてありますね。
18デフォルトの名無しさん
2011/05/11(水) 09:22:26.52 コマンドラインプログラムでタイマーを使って割り込み処理をする方法はありませんか?
2011/05/11(水) 10:03:30.90
コマンドラインでプログラムできるシェルっていうと、N-BASICとかそっち方面ですかね。
UNIXには無いけど、インタラクティブなLL使えば出来るんじゃないかな。
UNIXには無いけど、インタラクティブなLL使えば出来るんじゃないかな。
2011/05/11(水) 12:40:49.47
2011/05/11(水) 17:36:07.11
alarm(3)
2011/05/12(木) 22:29:01.57
libeventはやってるみたいだけど
libevとかもあるよね?
結局
select,poll,epoll,libent,libevどれがいいの?
でやっぱりサーバとしては、マルチスレッド使うよりいいわけ?
libevとかもあるよね?
結局
select,poll,epoll,libent,libevどれがいいの?
でやっぱりサーバとしては、マルチスレッド使うよりいいわけ?
2011/05/12(木) 22:45:58.40
今どきシングルコアしか使えないサーバプログラムなんて寂しいから、
シングルスレッドにするなら、クラスタリングの仕組みを用意して
負荷分散する等の余計な手間が必要になる様な・・・
一方、マルチスレッドで作っておけば、スレッド間のデータの受け渡しも
簡単だし、コンテクストスイッチも軽いし、プロセスの管理も簡単。
C の標準ライブラリにマルチスレッドの関数が入る時代だしね。
ただマルチプロセス前提なら、ノードを跨いだスケールアップを
狙えるのはメリットかも。
シングルスレッドにするなら、クラスタリングの仕組みを用意して
負荷分散する等の余計な手間が必要になる様な・・・
一方、マルチスレッドで作っておけば、スレッド間のデータの受け渡しも
簡単だし、コンテクストスイッチも軽いし、プロセスの管理も簡単。
C の標準ライブラリにマルチスレッドの関数が入る時代だしね。
ただマルチプロセス前提なら、ノードを跨いだスケールアップを
狙えるのはメリットかも。
2011/05/12(木) 23:17:46.96
>>23
ちょ、ちょっとまって。マルチスレッドを気に入ってるみたいだけど
ちょっとおまえのスキルを確認させて。
C10K問題のテキスト(英文でも訳文でもいいから)読んでみた?
最近(でもないか。)mixiがおちたmemcashedのとらぶる知ってる?
あ、そもそもmemcashedのlibeventのトラブルはしってる?
libeventとかのベンチマークテストとかやってみてるの?
スティーブンスンは読んだことあるよね?
「オンラインゲームを支える技術」は読んだ?あそこにかいてある内容はどう思う?
ちょ、ちょっとまって。マルチスレッドを気に入ってるみたいだけど
ちょっとおまえのスキルを確認させて。
C10K問題のテキスト(英文でも訳文でもいいから)読んでみた?
最近(でもないか。)mixiがおちたmemcashedのとらぶる知ってる?
あ、そもそもmemcashedのlibeventのトラブルはしってる?
libeventとかのベンチマークテストとかやってみてるの?
スティーブンスンは読んだことあるよね?
「オンラインゲームを支える技術」は読んだ?あそこにかいてある内容はどう思う?
2011/05/12(木) 23:25:56.05
>>24
何だか一行目から勘違いしてるみたいだけど、マジレスした方が良いの?
何だか一行目から勘違いしてるみたいだけど、マジレスした方が良いの?
2011/05/12(木) 23:49:30.80
2011/05/12(木) 23:52:54.47
自分の意見も言えないのに突撃してくるのは鬱陶しいから勘弁してくれ
君は議論してるつもりかもしれないけど・・・
君は議論してるつもりかもしれないけど・・・
2011/05/13(金) 02:28:56.84
>>25
遅くなりました。マジレスお願いいたします。
遅くなりました。マジレスお願いいたします。
2011/05/13(金) 20:04:57.12
>>28
結局マルチコアマシンに対応しないといけないから、
ロードバランシングする方法を考えておくか、
最初からマルチスレッドで作っておくしかないよ
という話なんだが・・・
>>22 が何のサーバを想定しているのか知らないけど、
例えばウェブサーバだとこんな感じかな?
nginx : load balancing + worker thread
lightty : multi process (http://redmine.lighttpd.net/wiki/1/Docs:MultiProcessor)
node.js : no feature => 普通はロードバランサーを手前に置くよね
至極普通の話をしているだけなのに >>24 みたいな人が
湧いてくるのが理解出来んわ。C10K って何十年前から
言われてると思ってるんだろうね。。。
結局マルチコアマシンに対応しないといけないから、
ロードバランシングする方法を考えておくか、
最初からマルチスレッドで作っておくしかないよ
という話なんだが・・・
>>22 が何のサーバを想定しているのか知らないけど、
例えばウェブサーバだとこんな感じかな?
nginx : load balancing + worker thread
lightty : multi process (http://redmine.lighttpd.net/wiki/1/Docs:MultiProcessor)
node.js : no feature => 普通はロードバランサーを手前に置くよね
至極普通の話をしているだけなのに >>24 みたいな人が
湧いてくるのが理解出来んわ。C10K って何十年前から
言われてると思ってるんだろうね。。。
2011/05/13(金) 22:13:45.61
>>29
c10問題は知ってる口調だけど原文は読んだのか?
そこではマルチスレッドはもはやこの問題に対応できるように設計されてないとかいてあるだろうに。
そこでシングルスレッド、ノンブロッキング、イベントドリブンが今の潮流なんでしょ?
c10問題は知ってる口調だけど原文は読んだのか?
そこではマルチスレッドはもはやこの問題に対応できるように設計されてないとかいてあるだろうに。
そこでシングルスレッド、ノンブロッキング、イベントドリブンが今の潮流なんでしょ?
2011/05/13(金) 22:19:05.81
そんな潮流はマルチコアプロセッサが登場する以前の話でしょ?
2011/05/14(土) 00:36:46.15
2011/05/14(土) 00:41:49.31
2011/05/14(土) 00:42:15.61
>>31
OSのマルチスレッドが一般化してからの一頃は1クライアントに1スレッドを
割り当てるサーバも多く書かれたが、C10Kの状況ではこのモデルは破綻する。大抵のOSは少なくとも以前はそのような非常に多数のスレッドを扱う状況を
あまり想定していなかった
OSのマルチスレッドが一般化してからの一頃は1クライアントに1スレッドを
割り当てるサーバも多く書かれたが、C10Kの状況ではこのモデルは破綻する。大抵のOSは少なくとも以前はそのような非常に多数のスレッドを扱う状況を
あまり想定していなかった
2011/05/14(土) 00:45:16.07
大抵の OS って Linux 2.2 とかだろ
2011/05/14(土) 00:53:10.16
2011/05/14(土) 00:53:53.81
>>36
you, go first.
you, go first.
2011/05/14(土) 16:21:54.86
>>29
何も知らない人なんだなw
何も知らない人なんだなw
2011/05/14(土) 17:42:16.31
かわいそうだからそっとしといてあげなよ
2011/05/14(土) 17:42:54.82
かわいそうだからそっとしといてあげなよ
41デフォルトの名無しさん
2011/05/14(土) 19:38:50.22 過疎スレあげ
2011/05/15(日) 03:06:26.86
わんわん
43デフォルトの名無しさん
2011/05/15(日) 18:15:10.31 かわいそうだからそっとしといてあげなよ
44デフォルトの名無しさん
2011/05/18(水) 05:01:47.06 計算が終了したら、Twitterに自動的にtweetするようにしたいのですが、一番簡単な方法を教えてください。
2011/05/18(水) 07:18:45.84
何故ここに…?
TwitterだったらPHPとかPerlとかPythonとかRubyとかの
いわゆるWeb系言語のスレとか、それかWebProg辺りになるんじゃないのか…?
TwitterだったらPHPとかPerlとかPythonとかRubyとかの
いわゆるWeb系言語のスレとか、それかWebProg辺りになるんじゃないのか…?
2011/05/18(水) 09:20:05.10
>>45
UNIX上で動作するアプリケーションが終了したときに、Webアプリケーションにポストしたいんでしょ。
適当にググったら、こんなのでてきたぞ。
http://bazaar.launchpad.net/~gabrielcain/twitter-cmdline/trunk/files
UNIX上で動作するアプリケーションが終了したときに、Webアプリケーションにポストしたいんでしょ。
適当にググったら、こんなのでてきたぞ。
http://bazaar.launchpad.net/~gabrielcain/twitter-cmdline/trunk/files
2011/05/18(水) 09:22:55.10
つうか、 command line twitter client でググったらぞろぞろでてきたぞ。
http://www.google.co.jp/search?q=command+line+twitter+client
http://www.google.co.jp/search?q=command+line+twitter+client
2011/05/18(水) 11:42:13.18
49デフォルトの名無しさん
2011/05/19(木) 22:30:53.13 大容量のファイルに対して、read()システムコール:ssize_t read(int fdesc, void *buf, size_t nbytes)
をしてみた所、失敗してerrno=22(EINVAL)が返るのね。ちなみに、movファイルでサイズは7GBぐらい。
なんで失敗するのかご教授ください。
をしてみた所、失敗してerrno=22(EINVAL)が返るのね。ちなみに、movファイルでサイズは7GBぐらい。
なんで失敗するのかご教授ください。
2011/05/19(木) 22:38:59.90
どこの馬の骨かわからない奴に教授する気はない。
2011/05/19(木) 23:49:56.04
そうだよな。どこのだれぐらい言わないとな
2011/05/20(金) 01:26:59.39
2011/05/20(金) 03:44:58.42
CPUの詳細情報は/proc/cpuで取得できますがGPUの詳細情報はどこで取得できるのでしょうか?
54デフォルトの名無しさん
2011/05/20(金) 06:45:35.26 popen/pclose系とシェルコマンドの連動(やりたいことは例えばls . | grep "hoge")で分かりやすいサイト(英語可)を教えてください。
言語は何でもいいですが、できればC言語ではなく、RubyやPythonで簡略化されたものがいいです。
ていうか、こういうCS以外の学科で教えなさそうな話は、本とかで勉強したほうがいいのでしょうか?
言語は何でもいいですが、できればC言語ではなく、RubyやPythonで簡略化されたものがいいです。
ていうか、こういうCS以外の学科で教えなさそうな話は、本とかで勉強したほうがいいのでしょうか?
2011/05/20(金) 09:21:56.15
>>49
引数渡し間違えてる。ファイルが大きすぎるとEFBIGになる。
>>53
/proc/cpuに相当する「詳細な」情報かどうかは分からないが、
/sys/devices/
の下でGPUの種類などは分かる。
lspci, lspci -nを参考にしてくれ。
>>54
http://docs.python.org/library/subprocess.html
引数渡し間違えてる。ファイルが大きすぎるとEFBIGになる。
>>53
/proc/cpuに相当する「詳細な」情報かどうかは分からないが、
/sys/devices/
の下でGPUの種類などは分かる。
lspci, lspci -nを参考にしてくれ。
>>54
http://docs.python.org/library/subprocess.html
2011/05/29(日) 04:34:19.21
X Window Systemのアプリ作りたい
gccで作れるの?
gccで作れるの?
2011/05/29(日) 09:25:04.48
gcc 以前に、そんなこと聞いてる奴には難しいと思う。
2011/05/29(日) 14:01:16.83
>>56
作れるよ
作れるよ
2011/05/30(月) 02:39:39.57
2011/05/30(月) 09:37:06.71
どこまでも能天気な奴だ
2011/05/30(月) 17:10:59.80
最初から簡単に作れる奴なんか居ない
誰でもHello Worldからステップアップするもんだ
誰でもHello Worldからステップアップするもんだ
2011/05/30(月) 18:08:03.00
gnome javascriptだとこんなかんじ
http://git.gnome.org/browse/gjs/tree/examples/gtk.js
http://git.gnome.org/browse/gjs/tree/examples/gtk.js
2011/05/30(月) 19:48:16.75
誰も聞いてない
2011/05/30(月) 20:11:42.38
2011/05/30(月) 20:32:05.96
>>62
gjs より、seed のほうが Gnome 標準っぽい。
gjs より、seed のほうが Gnome 標準っぽい。
2011/05/30(月) 21:13:05.41
大して変わらない。まあ言語と元のAPIが同じだから当たり前だが。
http://git.gnome.org/browse/seed-examples/tree/gtktextview.js
http://git.gnome.org/browse/seed-examples/tree/gtktextview.js
2011/06/09(木) 20:57:02.33
今日ブ○クオフいったら93年発行のXウィンドウプログラミング1って本が800円で売ってたから買うか迷ったけど買わなかった
ウィンドウマネージャの作り方とか載ってんのな
現状800円は高いお
ウィンドウマネージャの作り方とか載ってんのな
現状800円は高いお
2011/06/10(金) 12:35:16.66
なんだブックオフか
伏せる意味あんのか馬鹿
伏せる意味あんのか馬鹿
2011/06/10(金) 18:24:57.18
むしろこれは伏せてないw
2011/06/10(金) 19:21:02.60
ubuntuとかエンドユーザ向けのlinux流行ってるとか言ってるわりにはunix向けアプリの作り方の本とか書店で全然見かけないな
2011/06/10(金) 19:26:35.66
要するに、パソコンといえばBASIC、時代からMS-DOS時代に移行したような、
プログラミングなんかしない「エンドユーザ」に流行ってる、ということなんじゃ。
プログラミングなんかしない「エンドユーザ」に流行ってる、ということなんじゃ。
2011/06/10(金) 19:29:03.25
Linuxなどで開発する人は、自力で調べちゃうし。
2011/06/11(土) 00:58:34.80
xdmみたいなログインマネージャ作ってみたい
2011/06/11(土) 01:37:13.72
どうぞ。
2011/06/11(土) 04:42:17.51
ぶ[F7+Enter]まる[Space+Enter]おふ[Space+Enter]
マンドクセーw
マンドクセーw
2011/06/14(火) 03:51:17.37
もしかしてJava使えばX用アプリ簡単に作れたりする?
2011/06/14(火) 08:44:34.83
お前が簡単と感じるかどうかは別問題
2011/06/14(火) 08:47:40.25
GUIアプリは作れる
Xプロトコルのプログラミングをしたいならおすすめしない
Xプロトコルのプログラミングをしたいならおすすめしない
2011/06/14(火) 09:30:53.53
2011/06/14(火) 10:29:55.35
cとgladeでおk。
2011/06/28(火) 17:54:14.11
まったくの初心者です
sygwinを使っているのですが
VC++で作った.slnファイルをsygwin上で実行するにはどうすればいいんでしょうか?
ちなみにプログラムにはMFCが使われています
sygwinを使っているのですが
VC++で作った.slnファイルをsygwin上で実行するにはどうすればいいんでしょうか?
ちなみにプログラムにはMFCが使われています
2011/06/28(火) 18:35:35.68
build.exe にパスを通す
2011/07/07(木) 11:56:55.43
getopt() の、それ以上オプションが無いときの戻り値は何故 -1 なのでしょうか?
'\0' をオプションにすることって、たぶん無い…ですよね
'\0' をオプションにすることって、たぶん無い…ですよね
2011/07/07(木) 12:11:51.13
特別なケースは-1にすることがUNIXのAPIでは多いから。
2011/07/07(木) 19:46:34.18
なるほど、他の関数と同じような仕様にしたんですね
ありがとうございました
ありがとうございました
2011/07/08(金) 00:01:43.31
getchar()のEOFと似たループになるよね。
2011/07/08(金) 23:41:22.04
>>83
>'\0' をオプションにすることって、たぶん無い…ですよね
多分無いと思うけど、制限は可能な限り少ない方がいいと思ったんじゃね。
利用者は、極まれに開発者が思いもよらない使い方することあるから。
>'\0' をオプションにすることって、たぶん無い…ですよね
多分無いと思うけど、制限は可能な限り少ない方がいいと思ったんじゃね。
利用者は、極まれに開発者が思いもよらない使い方することあるから。
2011/07/09(土) 08:27:12.31
cutみたいにオプションでデリミタとかセパレータを指定できるコマンドを考慮してるとか?
普通に"\0"を渡せばヌル文字で解釈してくれそうだけど。
普通に"\0"を渡せばヌル文字で解釈してくれそうだけど。
2011/07/09(土) 11:55:58.84
確かに、そういったことも考慮すると使えるに越したことは無いかも知れないですね。参考になりました。
2011/07/23(土) 19:36:04.77
SSHとかではなく、自分の作ったプログラムで認証したいんですが、
UNIXの認証の仕組み(何らかのシステムコールを呼ぶとか?)を教えて下さい
UNIXの認証の仕組み(何らかのシステムコールを呼ぶとか?)を教えて下さい
2011/07/23(土) 20:02:15.87
authenticationとauthorizationのどっち?
2011/07/23(土) 20:34:34.73
>>90
pamとnss
pamとnss
2011/07/23(土) 21:47:55.56
キーボードってJISとUSどっちがいい?
2011/07/23(土) 22:18:25.49
このみ
2011/07/23(土) 23:02:31.00
>>92
ありがとう。
ありがとう。
2011/07/24(日) 04:26:40.76
>>93
自分にしっくり来るほう
自分にしっくり来るほう
97デフォルトの名無しさん
2011/08/09(火) 02:45:04.05 おいしいチャーシューの作り方を教えてください
2011/08/09(火) 02:54:14.26
1. 髪を伸ばしてオールバックにする
2. 裸になり黒パンを履く
3. 相手に喧嘩を売って自分からキレる
2. 裸になり黒パンを履く
3. 相手に喧嘩を売って自分からキレる
2011/08/09(火) 05:00:48.53
100デフォルトの名無しさん
2011/08/18(木) 19:43:09.42 Makefileで
a.h : b.h
みたいなのが書いてあるんですが、
これって何なんでしょう?
a.h : b.h
みたいなのが書いてあるんですが、
これって何なんでしょう?
101デフォルトの名無しさん
2011/08/19(金) 00:04:32.05 どっかで見た質問だったと思ったらここか
102デフォルトの名無しさん
2011/08/31(水) 15:59:35.10103デフォルトの名無しさん
2011/09/17(土) 19:43:33.04 起動してから一定時間実行したら終了するプログラムは
どのように作るのが普通なんでしょうか?
実行する内容としては例えば1時間というパラメータを与えられて起動されたら
その間ファイルを開いて読み取って閉じて次のファイルを読み取って
という事を繰り返して1時間経ったら自ら終了する感じで。
どのように作るのが普通なんでしょうか?
実行する内容としては例えば1時間というパラメータを与えられて起動されたら
その間ファイルを開いて読み取って閉じて次のファイルを読み取って
という事を繰り返して1時間経ったら自ら終了する感じで。
104デフォルトの名無しさん
2011/09/17(土) 20:05:33.54 alarmしてSIGALRMのシグナルハンドリング。
105デフォルトの名無しさん
2011/09/17(土) 23:45:50.55 お手軽にループの中でtimeで現在時刻もらって指定時間時間経過したらそのループ抜けるとか
106デフォルトの名無しさん
2011/09/19(月) 02:40:53.70 unix初心者です。
リモートホストからローカルホストに戻るコマンドを教えてください。
ググってもわからなかったです。
プログラミング以前の問題で申し訳ないですが、
よろしくお願い致します。
リモートホストからローカルホストに戻るコマンドを教えてください。
ググってもわからなかったです。
プログラミング以前の問題で申し訳ないですが、
よろしくお願い致します。
107デフォルトの名無しさん
2011/09/19(月) 03:34:08.39 exit
108デフォルトの名無しさん
2011/09/19(月) 07:57:15.94109デフォルトの名無しさん
2011/09/19(月) 11:20:30.90 >>104-105
ありがとうございます。
結局その2つになってしまいますよね。
シグナルは確実に止まるけど1個しか使えないし、時刻を取得してというのはその間に実行する処理の量によっては時刻取得のオーバーヘッドがシャレにならんかったり指定した時刻からかなり遅れて終了したりとかありますよね?
ありがとうございます。
結局その2つになってしまいますよね。
シグナルは確実に止まるけど1個しか使えないし、時刻を取得してというのはその間に実行する処理の量によっては時刻取得のオーバーヘッドがシャレにならんかったり指定した時刻からかなり遅れて終了したりとかありますよね?
110デフォルトの名無しさん
2011/09/19(月) 13:11:28.93111デフォルトの名無しさん
2011/09/20(火) 12:17:05.97 >>109
外部からジョブを終了させるってことが、
システム、言語、環境に関わらず、
「本質的に」難しい仕事ってのは理解している?
スレッドを外から終了させるようなAPIが
全く推奨されてないのと同じ理由なんだけど。
外部からジョブを終了させるってことが、
システム、言語、環境に関わらず、
「本質的に」難しい仕事ってのは理解している?
スレッドを外から終了させるようなAPIが
全く推奨されてないのと同じ理由なんだけど。
112デフォルトの名無しさん
2011/09/20(火) 22:07:30.83113デフォルトの名無しさん
2011/09/21(水) 02:14:03.87 つまらんことを気にする場合、大体はどうでもいい事にこだわっていると思う
RTOSじゃないしファイル読んでる時点で1sくらい普通にずれるべ
RTOSじゃないしファイル読んでる時点で1sくらい普通にずれるべ
114デフォルトの名無しさん
2011/09/21(水) 19:04:06.30 1時間経ったらがなんで1時間キッチリにせんといかんのだ?
115デフォルトの名無しさん
2011/09/21(水) 21:39:51.69 109で
>時刻を取得してというのはその間に実行する処理の量によっては
>時刻取得のオーバーヘッドがシャレにならんかったり指定した時刻から
>かなり遅れて終了したり
とかゆってるからシビアな条件があるのだろう
>時刻を取得してというのはその間に実行する処理の量によっては
>時刻取得のオーバーヘッドがシャレにならんかったり指定した時刻から
>かなり遅れて終了したり
とかゆってるからシビアな条件があるのだろう
116デフォルトの名無しさん
2011/09/22(木) 11:33:26.50 後始末のないworkerなら強制的に止めてしまえばいいし、
後始末が煩雑ならworker側でyeildするのがいい。
後始末が煩雑ならworker側でyeildするのがいい。
117デフォルトの名無しさん
2011/09/24(土) 01:49:26.29 SIG_DFLの時の動作がプロセス停止になっているシグナル(SIGTSTPとか)が
時々止まらないことがあるのはなんでだべ?
時々止まらないことがあるのはなんでだべ?
118デフォルトの名無しさん
2011/09/24(土) 02:00:46.48 >時刻取得のオーバーヘッドがシャレにならんかったり
ループの根元でやりゃ、負荷はバカにならんわな
お手軽にやったけど、何か解決方法はないかという
これ以上何も考えません的なところが素敵
ループの根元でやりゃ、負荷はバカにならんわな
お手軽にやったけど、何か解決方法はないかという
これ以上何も考えません的なところが素敵
119デフォルトの名無しさん
2011/09/24(土) 09:56:32.08 >>117
ブロックしている瞬間があるんじゃないの?
ブロックしている瞬間があるんじゃないの?
120デフォルトの名無しさん
2011/09/24(土) 12:24:20.07 >>110-118
ありがとうございます。
はい、現状は1時間を1本計れれば良いけど、それを1つのプロセスのままで複数の1時間を
スタートの時刻が異なっても計れるようにするには初めからどのような作り方をするべきかとか
1時間をまたいで読み取り中だったデータは捨てるのか全部入れるのか1時間ちょうどの部分で
切るのかとか、ちょっと基本的な点でアレ?とか思っちゃったのでちょっと質問してみた感じでした。
ありがとうございます。
はい、現状は1時間を1本計れれば良いけど、それを1つのプロセスのままで複数の1時間を
スタートの時刻が異なっても計れるようにするには初めからどのような作り方をするべきかとか
1時間をまたいで読み取り中だったデータは捨てるのか全部入れるのか1時間ちょうどの部分で
切るのかとか、ちょっと基本的な点でアレ?とか思っちゃったのでちょっと質問してみた感じでした。
121デフォルトの名無しさん
2011/09/24(土) 12:38:38.47 最後の2行は新しい質問か?初耳だが、そんなのプログラムに要求されていることによるだろ。
どの挙動をすべきかなんて作ってる奴にしか分からん。
どの挙動をすべきかなんて作ってる奴にしか分からん。
122デフォルトの名無しさん
2011/09/24(土) 13:05:38.56 最初の2行はお礼では。
123デフォルトの名無しさん
2011/09/24(土) 14:44:30.30 真ん中の二行は…てやかましいわ!
124デフォルトの名無しさん
2011/09/25(日) 02:55:22.61 wchar_tって使ってる人いる?
125デフォルトの名無しさん
2011/09/25(日) 19:21:08.09 canna以外で見たこと無いけど
126デフォルトの名無しさん
2011/09/25(日) 20:14:34.75 wchar_t をワッッチャァァァって発音したら、
職場の人間全員が ( ゚д゚) −> Σ( ゚д゚ ) になった
どうも _t を発音しなかったのがまずかったみたい
職場の人間全員が ( ゚д゚) −> Σ( ゚д゚ ) になった
どうも _t を発音しなかったのがまずかったみたい
127デフォルトの名無しさん
2011/09/25(日) 20:51:03.99 あー・・・ なるほど・・・ 大事なところだもんな・・・
128デフォルトの名無しさん
2011/09/25(日) 21:27:03.89 だぶちゃーてー(!ティー)だよな。
129デフォルトの名無しさん
2011/09/25(日) 21:46:54.79 だっちゃ
130デフォルトの名無しさん
2011/09/26(月) 00:00:03.88 たしかLinuxとかは一文字4byteなんだよねwchar_t。いやだなあ
131デフォルトの名無しさん
2011/09/26(月) 01:49:00.47 なにいってんのこの人。ダサい。
132デフォルトの名無しさん
2011/09/28(水) 03:14:27.91133デフォルトの名無しさん
2011/09/28(水) 10:04:03.97 VC++だと問題ないけどね。Unix系だと罠がいろいろとありそうな・・
134デフォルトの名無しさん
2011/09/28(水) 12:02:22.35 >>133
いまどきUnix系でプログラムしてる人は少数派だろ
いまどきUnix系でプログラムしてる人は少数派だろ
135デフォルトの名無しさん
2011/09/28(水) 12:11:37.58 それをこのスレで言うかwww
136デフォルトの名無しさん
2011/09/28(水) 15:43:47.23137デフォルトの名無しさん
2011/09/29(木) 11:43:22.93 AndroidやiOSはUNIX系かね?
古典的なAT&T由来のC APIではないけれど。
古典的なAT&T由来のC APIではないけれど。
138デフォルトの名無しさん
2011/09/29(木) 12:00:16.75 全ての作業をWindows上でおこなうのは少数派かな
139デフォルトの名無しさん
2011/09/29(木) 18:32:55.72 iOSはしらんけどAndroidはnix系だな
14067
2011/10/04(火) 15:07:33.28 今日行ったら200円になってたから思い切って買った
14167
2011/10/08(土) 01:51:21.45 ちなみに書籍タイトル正確なのは Xアプリケーションプログラミング1 xlib編 92年発行の東工大の教授の本だ
19年も前の本だけど19年前から顔文字ってすでにあったのな
19年前って俺まだ小学校低学年だったからパソコンとかよく知らんかったけど
X11R5が出たばっかのころのらしい、今のに使えんのかな
19年も前の本だけど19年前から顔文字ってすでにあったのな
19年前って俺まだ小学校低学年だったからパソコンとかよく知らんかったけど
X11R5が出たばっかのころのらしい、今のに使えんのかな
142デフォルトの名無しさん
2011/10/08(土) 06:03:00.48 >>141
これ? http://www.amazon.co.jp/dp/4883170225/ なつかしい。
自分は当時大学生で、大学で何百万もするUNIXワークステーションを使って
サンプルとか打ち込んでたなあ。今なら安PC+Linuxでより快適にできる。
LAN経由で近くで作業している奴のディスプレイにイタズラの画面を出したり...
一般家庭はともかく大学にはインターネットの電子メールとかネットニュースとかが
既にあったし、顔文字とかAAも使われていた。www(草じゃないよ)が出てきた前後だな。
大学のマシンにサーバー立ち上げたっけ。エロのw 今ならマスコミ沙汰になって
退学処分か?
Xのプログラミングから離れて久しいのでアレだが、Xlibはあんまり変わってないんじゃ?
すなわち今でも使えるのでは。あえて今から低レベルなものを使ってプログラムを
書きたいのであれば...
これ? http://www.amazon.co.jp/dp/4883170225/ なつかしい。
自分は当時大学生で、大学で何百万もするUNIXワークステーションを使って
サンプルとか打ち込んでたなあ。今なら安PC+Linuxでより快適にできる。
LAN経由で近くで作業している奴のディスプレイにイタズラの画面を出したり...
一般家庭はともかく大学にはインターネットの電子メールとかネットニュースとかが
既にあったし、顔文字とかAAも使われていた。www(草じゃないよ)が出てきた前後だな。
大学のマシンにサーバー立ち上げたっけ。エロのw 今ならマスコミ沙汰になって
退学処分か?
Xのプログラミングから離れて久しいのでアレだが、Xlibはあんまり変わってないんじゃ?
すなわち今でも使えるのでは。あえて今から低レベルなものを使ってプログラムを
書きたいのであれば...
143デフォルトの名無しさん
2011/10/08(土) 06:54:30.22 dwm, xmonadといったタイル型ウインドウマネージャや
dmenu, dzenなどのシンプルなランチャの流行もあって
今でもXLibプログラミングは熱いですお
dmenu, dzenなどのシンプルなランチャの流行もあって
今でもXLibプログラミングは熱いですお
144デフォルトの名無しさん
2011/10/08(土) 08:18:56.56 >>143
そうなんだー。
今dwmのソースをダウンロードしてみたらソースファイルが一つだけ...
こんなんでいいんだ。
サーバはXを使うとして、ウインドマネージャを自作するなんてのも面白そうだね。
ウィジェットとか言い始めると敷居が高いと思われるので...
そうなんだー。
今dwmのソースをダウンロードしてみたらソースファイルが一つだけ...
こんなんでいいんだ。
サーバはXを使うとして、ウインドマネージャを自作するなんてのも面白そうだね。
ウィジェットとか言い始めると敷居が高いと思われるので...
145デフォルトの名無しさん
2011/10/08(土) 08:35:55.73 age
146デフォルトの名無しさん
2011/10/09(日) 01:44:52.52 この質問ここでいいのか分からないんだけど
↓のサイトのやりかたで、つまり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/
↓のサイトのやりかたで、つまり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 シェルスクリプト総合 その18
http://hibari.2ch.net/test/read.cgi/unix/1308195527/
http://hibari.2ch.net/test/read.cgi/unix/1308195527/
148デフォルトの名無しさん
2011/10/09(日) 04:09:22.56 そのスレにcsh使いを誘導しないで欲しい
cshのmanのヒアドキュメントを読む。echoで書く。cshを捨てる(推奨)
cshのmanのヒアドキュメントを読む。echoで書く。cshを捨てる(推奨)
149デフォルトの名無しさん
2011/10/09(日) 04:15:21.44 インタラクティブに使ってるなら
$ cat >Makefile
中身入力、改行
Ctrl+D
$ cat >Makefile
中身入力、改行
Ctrl+D
150デフォルトの名無しさん
2011/10/15(土) 00:10:57.09 Rob Pike曰く、Dennis Ritchieが亡くなったと。
https://plus.google.com/u/0/101960720994009339267/posts/ENuEDDYfvKP?hl=en
南無
https://plus.google.com/u/0/101960720994009339267/posts/ENuEDDYfvKP?hl=en
南無
151デフォルトの名無しさん
2011/10/15(土) 01:23:11.92 お悔やみ申し上げます
152デフォルトの名無しさん
2011/10/15(土) 18:28:21.23 _____
.ni 7 / \ ご冥福をお祈りします
l^l | | l ,/) / /・\ /・\ \ .n
', U ! レ' / |  ̄ ̄  ̄ ̄ | l^l.| | /)
/ 〈 | (_人_) | | U レ'//)
ヽっ \ | / ノ /
/´ ̄ ̄ ノ \_| \rニ |
`ヽ l
.ni 7 / \ ご冥福をお祈りします
l^l | | l ,/) / /・\ /・\ \ .n
', U ! レ' / |  ̄ ̄  ̄ ̄ | l^l.| | /)
/ 〈 | (_人_) | | U レ'//)
ヽっ \ | / ノ /
/´ ̄ ̄ ノ \_| \rニ |
`ヽ l
153デフォルトの名無しさん
2011/10/15(土) 20:21:34.20154デフォルトの名無しさん
2011/10/15(土) 20:29:40.38 まちごた
まいいや
まいいや
155デフォルトの名無しさん
2011/10/18(火) 17:07:46.91156デフォルトの名無しさん
2011/10/19(水) 08:32:31.05157デフォルトの名無しさん
2011/10/19(水) 09:12:36.56 隣のおっさんうるさい
158デフォルトの名無しさん
2011/10/19(水) 12:42:25.99 じゃあ転職しろ
159デフォルトの名無しさん
2011/10/21(金) 13:03:48.22 >>156
普通はコマンドライン版を指すよ
普通はコマンドライン版を指すよ
160デフォルトの名無しさん
2011/10/21(金) 19:53:17.14 そんなこたーない。
161デフォルトの名無しさん
2011/10/21(金) 22:24:13.25 「コマンドラインアプリ」ってあんまり聞かないな
162デフォルトの名無しさん
2011/10/22(土) 02:07:40.32 cursesを使ったようなやつ?
163デフォルトの名無しさん
2011/10/22(土) 02:44:59.58 単にコマンドって言うもんね。
164デフォルトの名無しさん
2011/10/22(土) 03:01:48.61 Xアプリケーションプログラミング1 xlib編で書かれていたアプリケーションとは
不特定多数のユーザに使われることを前提として作られた,"汎用的で便利なプログラムのことをアプリケーションと呼ぶ" (引用 p.27 l.17~18)
だそうで
X用のプログラムは必然的にアプリケーションと呼ばれるだけの性質を持つそうです
不特定多数のユーザに使われることを前提として作られた,"汎用的で便利なプログラムのことをアプリケーションと呼ぶ" (引用 p.27 l.17~18)
だそうで
X用のプログラムは必然的にアプリケーションと呼ばれるだけの性質を持つそうです
165デフォルトの名無しさん
2011/10/22(土) 11:25:36.43 Ach, so.
166デフォルトの名無しさん
2011/10/22(土) 12:29:12.68 http://www.amazon.co.jp/dp/4883170225
これか? 20年も前の歴史的価値品ない骨董本引用して何が言いたいんだ? ジジイ。
これか? 20年も前の歴史的価値品ない骨董本引用して何が言いたいんだ? ジジイ。
167デフォルトの名無しさん
2011/10/22(土) 16:16:40.17168デフォルトの名無しさん
2011/10/22(土) 16:49:58.99 大昔でもアプリ向けにはathenaとかmotifとか使ってたんでは。
あとOpenGLと比べるのもなにかおかしい気が。
あとOpenGLと比べるのもなにかおかしい気が。
169デフォルトの名無しさん
2011/10/22(土) 18:18:16.62 >>166の2巻目はAthenaウィジェット編だからな
当時もXlibでアプリ作るとか無いだろ
当時もXlibでアプリ作るとか無いだろ
170デフォルトの名無しさん
2011/10/22(土) 19:08:53.18171デフォルトの名無しさん
2011/10/22(土) 19:27:58.00 ああそうなの、アプリの話かと思ったわ。すまんね。
172デフォルトの名無しさん
2011/10/23(日) 00:20:01.27 67は今やオールドテクノロジー化したXlib本を買って何がしたいのやら
173デフォルトの名無しさん
2011/10/23(日) 00:25:28.54 オールドテクノロジーってわけじゃないけども。
今時のGTKアプリだって下位層で使ってるんだから。
「低レベル」ってのが適切な形容詞だと思う。
今時のGTKアプリだって下位層で使ってるんだから。
「低レベル」ってのが適切な形容詞だと思う。
174デフォルトの名無しさん
2011/10/23(日) 00:28:26.89 時代はXlibからXCBだと聞いた
175デフォルトの名無しさん
2011/10/23(日) 13:13:19.54176デフォルトの名無しさん
2011/10/23(日) 13:15:02.36177デフォルトの名無しさん
2011/11/05(土) 15:09:51.61 EmacsやらNetbeansやらをいじっていて気付いたのですが,
大昔(EclipseもNetbeansもなかった頃)のGNUとかオープンソース界隈のエロい人たちが使っていた
IDE(統合開発環境)ってどうなってたんでしょうか?
IDEなんか使ってなくて,CUIに仮想デスクトップ+vi/Emacs+gcc/gdbとか普通にありそうですが…
大昔(EclipseもNetbeansもなかった頃)のGNUとかオープンソース界隈のエロい人たちが使っていた
IDE(統合開発環境)ってどうなってたんでしょうか?
IDEなんか使ってなくて,CUIに仮想デスクトップ+vi/Emacs+gcc/gdbとか普通にありそうですが…
178デフォルトの名無しさん
2011/11/05(土) 15:55:37.08 いまはemacsにもIDEが乗っかってる時代だからな
179デフォルトの名無しさん
2011/11/05(土) 16:11:48.60 フルカスタマイズしたEmacsがIDE相当だな
結構色んなこと出来るよあれ、環境作るのは面倒いけど
結構色んなこと出来るよあれ、環境作るのは面倒いけど
180デフォルトの名無しさん
2011/11/06(日) 06:57:42.24 仮想デスクトップがscreenか
181デフォルトの名無しさん
2011/11/06(日) 10:49:33.98 ・エディタの無い時代
ソースは紙に下書き、パンチカードに清書して入力するよ!
出来上がったソースは印刷してチェックだ!
ジジイ達が処理の切れ目に書く馬鹿デカいコメントはこの時代の名残りだよ!
だって印刷物は関数のところへジャンプも、そもそも検索も出来ないからな!
・ラインエディタ時代(edなど)
環境によっては標準出力はプリンタかも知れないよ!
でも入力してるその場でソース見たり、エディタによっては検索も出来るよ!便利!
・スクリーンエディタ登場(viなど)
なんと行の途中の文字だけ編集したり出来るよ!
これで長い行もサクサク編集出来るね!
ディスプレイもみんなの分あるから、超便利になったよ!
ソースは紙に下書き、パンチカードに清書して入力するよ!
出来上がったソースは印刷してチェックだ!
ジジイ達が処理の切れ目に書く馬鹿デカいコメントはこの時代の名残りだよ!
だって印刷物は関数のところへジャンプも、そもそも検索も出来ないからな!
・ラインエディタ時代(edなど)
環境によっては標準出力はプリンタかも知れないよ!
でも入力してるその場でソース見たり、エディタによっては検索も出来るよ!便利!
・スクリーンエディタ登場(viなど)
なんと行の途中の文字だけ編集したり出来るよ!
これで長い行もサクサク編集出来るね!
ディスプレイもみんなの分あるから、超便利になったよ!
182デフォルトの名無しさん
2011/11/06(日) 13:20:47.68183デフォルトの名無しさん
2011/11/06(日) 14:15:14.94 前の職場にリアルでリアルでパンチャーやってた頃があるって言ってたパートのおばちゃんが居たな…
184デフォルトの名無しさん
2011/11/06(日) 16:05:23.93 emacsが無かった時はvi使ってたよ
いまでも普通にvi使う
echo>>
だけで済ませることもしばしば
いまでも普通にvi使う
echo>>
だけで済ませることもしばしば
185177
2011/11/06(日) 18:53:49.18 このスレのエロい人thx!
複数の言語で何か処理してファイルで読み書きするというレベルに達したので,次のレベルに進みたくて調べたけど
大体予想通りということがわかりました.
昔と違って分野が複数ある(並列化一つとってもマルチスレッド,マルチコア,マルチプロセッサにGPU)ので
進む方向性を選ぶのが難しい.
複数の言語で何か処理してファイルで読み書きするというレベルに達したので,次のレベルに進みたくて調べたけど
大体予想通りということがわかりました.
昔と違って分野が複数ある(並列化一つとってもマルチスレッド,マルチコア,マルチプロセッサにGPU)ので
進む方向性を選ぶのが難しい.
186デフォルトの名無しさん
2011/11/06(日) 19:36:36.25187デフォルトの名無しさん
2011/11/06(日) 22:26:54.73188デフォルトの名無しさん
2011/11/06(日) 23:08:12.64 馬鹿には無理
189177
2011/11/07(月) 00:36:34.52 情報系の院生として研究に従事していますが,自分の立ち位置は「他学問から対象問題を収集,複数の手法を組み合わせて解く」こと.
問題に対する解法の有効性を検証するのが仕事なので,シンプルに組んでそこそこ新しい計算端末で4日ほど計算させる.
有効性が検証されたら,複数の小問題として分割して学部生の卒論として展開されます.
なのでGPGPUやMap-Reduceなどの先進的な手法を自分で扱いたいのですが,そこまで時間を確保できない.
>>186
すみません,利用する選択肢で書いてしまいました.
ただGPGPUなどもそうですが,自然科学分野の対象問題を性能を引き出すように構築するのって
すごく難しい(この変数が何バイトで…と考えなければならないので)
>>187
昔といってもベーマガ全盛期のあたりを指しています.
教科書を元に脇目もふらず,ロジックを検討できるのはいいなぁと思います.
今ではWebアプリ(phpからJSP,RoRなど)やクラウドも登場して選択肢と夢ばかりがひろがりんぐです.
>>188
そのとーりだと思います
問題に対する解法の有効性を検証するのが仕事なので,シンプルに組んでそこそこ新しい計算端末で4日ほど計算させる.
有効性が検証されたら,複数の小問題として分割して学部生の卒論として展開されます.
なのでGPGPUやMap-Reduceなどの先進的な手法を自分で扱いたいのですが,そこまで時間を確保できない.
>>186
すみません,利用する選択肢で書いてしまいました.
ただGPGPUなどもそうですが,自然科学分野の対象問題を性能を引き出すように構築するのって
すごく難しい(この変数が何バイトで…と考えなければならないので)
>>187
昔といってもベーマガ全盛期のあたりを指しています.
教科書を元に脇目もふらず,ロジックを検討できるのはいいなぁと思います.
今ではWebアプリ(phpからJSP,RoRなど)やクラウドも登場して選択肢と夢ばかりがひろがりんぐです.
>>188
そのとーりだと思います
190デフォルトの名無しさん
2011/11/07(月) 02:56:08.65 コンパイルが通らなくて困っています。
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
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 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が古すぎてコンパイルできないのでしょうか?
なんとか良い方法は無いでしょうか?
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 >>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が付いてきたのかもね。
>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 >>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)());)()
と正しいようです。
ヘッダファイルを修正してやってみます。
すいません。
ありがとうございます。
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 リチャードスティーブンスの本でわからない点があるので質問します
unixネットワークプログラミングでifreq構造体ifr_dstaddrの説明でp-to-pリンクの反対側とありますが
どういうことでどういう値が入るのでしょうか
unixネットワークプログラミングでifreq構造体ifr_dstaddrの説明でp-to-pリンクの反対側とありますが
どういうことでどういう値が入るのでしょうか
195デフォルトの名無しさん
2011/11/22(火) 09:03:54.79 ifconfigでPPPなどのpoint-to-pointなインターフェースを作ると、
対向側のIPアドレスが入る。
対向側のIPアドレスが入る。
196デフォルトの名無しさん
2011/12/07(水) 19:19:33.28 Xclockとか一見シンプルそうなアプリでさえ
ソースコード見るとすんげえ量で萎える
人のコード見て勉強とかちょっと疲れてきた
ソースコード見るとすんげえ量で萎える
人のコード見て勉強とかちょっと疲れてきた
197デフォルトの名無しさん
2011/12/07(水) 20:19:34.24 Win32API ほどじゃない
198デフォルトの名無しさん
2011/12/07(水) 21:35:07.67 >>196
http://www.pygtk.org
http://live.gnome.org/Seed
GUIアプリならこういうので書けば? あるいはせめて、
http://www.gtk.org
http://www.pygtk.org
http://live.gnome.org/Seed
GUIアプリならこういうので書けば? あるいはせめて、
http://www.gtk.org
199デフォルトの名無しさん
2011/12/07(水) 22:21:43.40 wxPython オヌヌメ
200デフォルトの名無しさん
2012/01/20(金) 17:00:54.36 xmessageって便利やな
201デフォルトの名無しさん
2012/01/20(金) 19:51:48.27 今ubuntuのGCCコンパイラが4.5.2 が入っているんですが、
そのGCCコンパイラを4.4.5にダウングレードしたいのですが、どうすればいいですか?
そのGCCコンパイラを4.4.5にダウングレードしたいのですが、どうすればいいですか?
202デフォルトの名無しさん
2012/01/20(金) 20:11:06.84 パッケージのダウングレードなら犬板のUbuntuスレ、ソースからコンパイルならGCCスレで聞く方が良さ気
203デフォルトの名無しさん
2012/01/20(金) 20:14:03.88204デフォルトの名無しさん
2012/01/21(土) 13:52:42.46 【プログラミング部】 PHPが100倍速で動くようになったぞー
http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
205デフォルトの名無しさん
2012/01/25(水) 02:16:44.58 LinuxとかBSD系ってUNIXじゃなかったのな
昨日初めて知った
ってことはLinux系の質問はここじゃスレチになるのか
昨日初めて知った
ってことはLinux系の質問はここじゃスレチになるのか
206デフォルトの名無しさん
2012/01/25(水) 04:27:28.79 1によるとUNIX cloneも含んでいるからおkよ
207デフォルトの名無しさん
2012/01/25(水) 15:13:45.95 つうか清く正しいAT&Tの血統はまだ残っとるのか?
208デフォルトの名無しさん
2012/01/26(木) 04:58:13.71 LinuxはUNIXじゃないがBSDはUNIXで良いと思ってた
209デフォルトの名無しさん
2012/01/26(木) 10:04:56.87 BSDはUNIXの血を浄化しました。
210デフォルトの名無しさん
2012/01/26(木) 14:15:55.41 BSDはトレードマークである「UNIX」は名乗れないです。
opengroupの認証通ってないので。
opengroupの認証通ってないので。
211デフォルトの名無しさん
2012/01/26(木) 14:37:35.26 敢えてソースから何から全部書き直して
ライセンス汚染してないことにしてる?
ライセンス汚染してないことにしてる?
212デフォルトの名無しさん
2012/01/26(木) 14:47:49.48 短いからとりあえずこれでも読めば
http://ja.wikipedia.org/wiki/BSD
http://ja.wikipedia.org/wiki/BSD
213デフォルトの名無しさん
2012/01/26(木) 15:34:29.19 Single UNIX Specification - Wikipedia
http://ja.wikipedia.org/wiki/Single_UNIX_Specification
これにLinuxもBSD系もどうたらこうたらって読んだ
http://ja.wikipedia.org/wiki/Single_UNIX_Specification
これにLinuxもBSD系もどうたらこうたらって読んだ
214デフォルトの名無しさん
2012/01/27(金) 03:47:31.46 まだ初心者で申し訳ないのですが、
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"とエラーを出します。
どうすればよいでしょうか?
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 -iXtst してる? gccのコマンドライン晒したほうがいいよ
できれば最小限のソースも
できれば最小限のソースも
216デフォルトの名無しさん
2012/01/27(金) 05:41:13.84 あれ、l って打ったつもりが i になってる。ごめん
-lXtst の誤り。詳しくは man xtestqueryextension で
-lXtst の誤り。詳しくは man xtestqueryextension で
217デフォルトの名無しさん
2012/01/28(土) 01:10:43.39 Macの質問もここでおkなの?
218デフォルトの名無しさん
2012/01/28(土) 02:58:00.76 Mac固有にならなければ
219デフォルトの名無しさん
2012/01/28(土) 03:22:15.70 マックってユニックスだったんか
知らなかったわ
知らなかったわ
220デフォルトの名無しさん
2012/01/28(土) 20:27:34.75 ということはiPhoneの質問もここでおkかな?
221デフォルトの名無しさん
2012/01/28(土) 20:33:41.08 iOSはUnix系だとあるけど
iPhoneでUnix的な使い方ってできたんだっけ?
iPhoneでUnix的な使い方ってできたんだっけ?
222デフォルトの名無しさん
2012/01/28(土) 22:49:16.13 mmapとか動くよ
223デフォルトの名無しさん
2012/01/29(日) 10:19:19.06224デフォルトの名無しさん
2012/02/07(火) 20:55:21.88 おねがいします
プロセス間通信で使う、名前付きFIFOをPスレッド間で使うことは可能でしょうか?
それともなにか問題が発生するでしょうか?
また、名前付きFIFOの名前を既存ファイルとかぶらないように自動生成する方法はありますか?
プロセス間通信で使う、名前付きFIFOをPスレッド間で使うことは可能でしょうか?
それともなにか問題が発生するでしょうか?
また、名前付きFIFOの名前を既存ファイルとかぶらないように自動生成する方法はありますか?
225デフォルトの名無しさん
2012/02/07(火) 21:16:13.63 vimrcとかbashrcとかscreenrcのrcって何の略なんですか?
226デフォルトの名無しさん
2012/02/07(火) 21:25:42.05 run commandの略だという説が有力
227デフォルトの名無しさん
2012/02/07(火) 21:35:56.81228デフォルトの名無しさん
2012/02/07(火) 23:49:16.68 >>224
プロセス間で使えてスレッド間で使えなくなる理由が分からない
その内容だとpipeで十分に思える。というより、そういうライブラリ使ったほうがオーバーヘッドがないような
一時ファイルはmktempで作ると他と衝突しない
プロセス間で使えてスレッド間で使えなくなる理由が分からない
その内容だとpipeで十分に思える。というより、そういうライブラリ使ったほうがオーバーヘッドがないような
一時ファイルはmktempで作ると他と衝突しない
229デフォルトの名無しさん
2012/02/08(水) 02:35:32.10230デフォルトの名無しさん
2012/02/08(水) 02:56:19.60 mkstempって普通ファイル以外作れたか?
231デフォルトの名無しさん
2012/02/08(水) 07:55:45.41 >>226,227
ありがとうございました
ありがとうございました
232デフォルトの名無しさん
2012/02/08(水) 20:32:47.58 >>228
>>229
>>230
用語を間違えていました。
名前付きFIFOではなく、名前付きパイプ(=FIFO)でしたね。失礼しました。
スレッド間だともしかして排他処理がうまくできないのではと思ったもので。
スレッド間で使うなら確かに匿名パイプのほうが適切ですね。
mktemp()のセキュア版であるmkstemp()は、ファイル自体を作ってしまうのですが、
普通のファイルをパイプ化できるのであれば問題ないのですが、
どうもそのようなことをしてくれるシステムコールは存在しないようで・・・
tmpnam()で名前だけ作ってmkfifo()でFIFOを生成してもいいのですが、
tmpnam()のせいでコンパイル時に恐ろしげな警告が出るのが気持ち悪くて・・・
・・・困りました
>>229
>>230
用語を間違えていました。
名前付きFIFOではなく、名前付きパイプ(=FIFO)でしたね。失礼しました。
スレッド間だともしかして排他処理がうまくできないのではと思ったもので。
スレッド間で使うなら確かに匿名パイプのほうが適切ですね。
mktemp()のセキュア版であるmkstemp()は、ファイル自体を作ってしまうのですが、
普通のファイルをパイプ化できるのであれば問題ないのですが、
どうもそのようなことをしてくれるシステムコールは存在しないようで・・・
tmpnam()で名前だけ作ってmkfifo()でFIFOを生成してもいいのですが、
tmpnam()のせいでコンパイル時に恐ろしげな警告が出るのが気持ち悪くて・・・
・・・困りました
233デフォルトの名無しさん
2012/02/08(水) 23:27:28.46 スレッド間ならファイルディスクリプタは共有しているので、名前付きである必要な理由は無いな。
あえてnamed pipeを選択する理由は?
あえてnamed pipeを選択する理由は?
234デフォルトの名無しさん
2012/02/09(木) 00:30:27.29 名前付きを使いたいのはスレッド間ではないです
235デフォルトの名無しさん
2012/02/09(木) 00:37:06.84 forkすればファイルディスクリプタは複製されるし、全く別のプロセスに
ソケットを使ってファイルディスクリプタを送信することもできたはず
というかその用途ならソケットで通信すればいいのでは?
ソケットを使ってファイルディスクリプタを送信することもできたはず
というかその用途ならソケットで通信すればいいのでは?
236デフォルトの名無しさん
2012/02/09(木) 00:39:23.33 > プロセス間通信で使う、名前付きFIFOをPスレッド間で使うことは可能でしょうか?
> 名前付きを使いたいのはスレッド間ではないです
どっちが本当?
> 名前付きを使いたいのはスレッド間ではないです
どっちが本当?
237デフォルトの名無しさん
2012/02/09(木) 00:47:02.99 下が本当です
上はうっかりミスで、
「プロセス間通信で使う、パイプをPスレッド間で使うことは可能でしょうか?」
が意図したQでした。
よって、想定しているシチュエーションは2つあったわけです。
1. スレッド間でパイプ使用
2. (プロセス間の)FIFOのユニークな名前の自動生成
上はうっかりミスで、
「プロセス間通信で使う、パイプをPスレッド間で使うことは可能でしょうか?」
が意図したQでした。
よって、想定しているシチュエーションは2つあったわけです。
1. スレッド間でパイプ使用
2. (プロセス間の)FIFOのユニークな名前の自動生成
238デフォルトの名無しさん
2012/02/09(木) 00:50:14.29 できればプロセス間でも親子関係とか持たせてパイプにする方がいいような。
どうせユニークな名前をどうにかして相手に伝えないといけないんでしょ。
どうせユニークな名前をどうにかして相手に伝えないといけないんでしょ。
239デフォルトの名無しさん
2012/02/09(木) 00:56:05.42 パイプでつなぎたい先のプロセスは、独立した実行ファイルによるものですので
240デフォルトの名無しさん
2012/02/09(木) 00:56:56.90 forkしてパイプ準備してからexecすればいいのでは
241デフォルトの名無しさん
2012/02/09(木) 01:03:48.90 寝ぼけてました・・・
全く、そのような方法でやろうと自分でも考えていました。
全く、そのような方法でやろうと自分でも考えていました。
242デフォルトの名無しさん
2012/02/09(木) 01:12:26.89 書き込む前に一度読み直して人に伝わるかどうか位確認しろw
結局>>240の提示した方法で実現できそうな話だったんだな?
結局>>240の提示した方法で実現できそうな話だったんだな?
243デフォルトの名無しさん
2012/02/09(木) 06:14:23.72 パイプの名前は?
244デフォルトの名無しさん
2012/02/09(木) 11:21:57.81 >>243
ズシオ
ズシオ
245デフォルトの名無しさん
2012/02/09(木) 13:40:45.86 SIGPIPEウゼエって時は、
int result = send( fd , buffer ,size , MSG_NOSIGNAL);
ってやり方もある。OSとfiletypeを選ぶけども。
int result = send( fd , buffer ,size , MSG_NOSIGNAL);
ってやり方もある。OSとfiletypeを選ぶけども。
246デフォルトの名無しさん
2012/02/09(木) 18:25:23.87 SIGPIPEなんて速攻でIGNOREしてたわ
247デフォルトの名無しさん
2012/02/09(木) 19:24:31.48 解決した後で聞かれもしてない事(しかも大した情報量がない)を
ドヤ顔で言い出す奴ってかなり恥ずかしい。
ドヤ顔で言い出す奴ってかなり恥ずかしい。
248デフォルトの名無しさん
2012/02/09(木) 22:59:21.62 ためになるからイナフだ
249デフォルトの名無しさん
2012/02/10(金) 12:53:22.71 >>247は可哀想。
250デフォルトの名無しさん
2012/02/10(金) 20:19:25.23 system()がダメでexec*()じゃなければならない場合って具体的にどういう使いどころですかね?
251デフォルトの名無しさん
2012/02/10(金) 20:30:04.86 ・forkした後にあれしたりこれしたり
・login shellに左右されたくないコマンドライン
・login shellに左右されたくないコマンドライン
252デフォルトの名無しさん
2012/02/10(金) 21:47:45.05 すいません・・・
そこをもう一声具体的に・・・悲
そこをもう一声具体的に・・・悲
253デフォルトの名無しさん
2012/02/10(金) 21:53:36.60 自分とパイプで繋がった子プロセス内で外部のプログラムを実行できたりとか
254デフォルトの名無しさん
2012/02/10(金) 22:01:58.79 コマンドラインとして渡す文字列(の一部)が文字列としてプログラム外からやってくる時。
255デフォルトの名無しさん
2012/02/10(金) 22:11:03.48256デフォルトの名無しさん
2012/02/10(金) 22:16:24.42 fork+execとsystemの違いってなんですか、ならわかるけど
forkとsystemの違いってなんですか、だと根本的に勘違いしてるだろうからman読んだほうがいいよ
forkとsystemの違いってなんですか、だと根本的に勘違いしてるだろうからman読んだほうがいいよ
257デフォルトの名無しさん
2012/02/10(金) 22:19:18.11 こんな>>255態度で返す奴ってなんなの?
258デフォルトの名無しさん
2012/02/10(金) 22:26:11.92 「シェルを通すか通さないか」という言葉ぐらいは知ってるんですが、
じゃあ、使い分けが必要なのは具体的にどういう箇所で?となると
わかっている人に教わったほうが間違いがないかと思ったものですから・・・謝
じゃあ、使い分けが必要なのは具体的にどういう箇所で?となると
わかっている人に教わったほうが間違いがないかと思ったものですから・・・謝
259デフォルトの名無しさん
2012/02/10(金) 22:32:43.19 言い訳だけしてまともに謝る事すらできないのか
人間のクズだな
人間のクズだな
260デフォルトの名無しさん
2012/02/10(金) 22:40:55.98 ごめんなない
261デフォルトの名無しさん
2012/02/10(金) 22:51:07.88 誠意を見せたかったらどうするのかわからないのか?
教えてやろう。画像を貼るんだよ。
教えてやろう。画像を貼るんだよ。
262デフォルトの名無しさん
2012/02/10(金) 23:12:37.26263デフォルトの名無しさん
2012/02/11(土) 00:25:56.53 systemとexecじゃできることが違いすぎて何を聞きたいのかが不明過ぎる
264デフォルトの名無しさん
2012/02/11(土) 00:34:15.31 はったりはやめなよ
265デフォルトの名無しさん
2012/02/11(土) 00:42:24.53 UNIX勉強しろよ
266デフォルトの名無しさん
2012/02/11(土) 00:53:47.37 薀蓄自慢したい人ですかね?
267デフォルトの名無しさん
2012/02/11(土) 11:43:52.95 >>263
別プロセスを生成させる以外になにか大きな使い方の差があるのでしょうか?
別プロセスを生成させる以外になにか大きな使い方の差があるのでしょうか?
268デフォルトの名無しさん
2012/02/11(土) 11:48:54.36 >>267
シェルがあるかないか も超重要じゃね?
シェルがあるかないか も超重要じゃね?
269デフォルトの名無しさん
2012/02/11(土) 11:50:30.76 >>267
・systemは1)プロセスを生成して、2)別バイナリを実行する。
1と2の間にいろいろできる。(パイプでつなぐ、資格情報の制御、リソースの制限などなど)
・systemはshに実行させる。shの機能(リダイレクトとか)が使える反面、セキュリティ上の問題を起こしやすい。
・systemは1)プロセスを生成して、2)別バイナリを実行する。
1と2の間にいろいろできる。(パイプでつなぐ、資格情報の制御、リソースの制限などなど)
・systemはshに実行させる。shの機能(リダイレクトとか)が使える反面、セキュリティ上の問題を起こしやすい。
270デフォルトの名無しさん
2012/02/11(土) 12:25:17.58 >>264,266,267
やるきねーだろ
やるきねーだろ
271デフォルトの名無しさん
2012/02/11(土) 16:31:24.52 やる気はあります!
レスが付くまで全裸で待機していましたし
レスが付くまで全裸で待機していましたし
272デフォルトの名無しさん
2012/02/11(土) 16:39:39.91 全裸待機する暇があったらman 3 system; man 3 exec
273デフォルトの名無しさん
2012/02/11(土) 16:49:39.39 らめえぇぇぇぇぇぇぇ
システムのページサイズを超えてかきこまないでぇぇぇぇ
あたしまだバージョン 2.6.11 より前なのにぃぃぃぃぃ
みたいな
システムのページサイズを超えてかきこまないでぇぇぇぇ
あたしまだバージョン 2.6.11 より前なのにぃぃぃぃぃ
みたいな
274デフォルトの名無しさん
2012/02/11(土) 17:31:53.25 Linux板でも逝け
275デフォルトの名無しさん
2012/02/11(土) 20:16:56.46 あそこは管理系の薀蓄でブヒってるのが多いからなんとなくイヤ
「お前が管理しているそのツールのこの機能はどうやって作るのか」
という質問には答えてくれなそう
「お前が管理しているそのツールのこの機能はどうやって作るのか」
という質問には答えてくれなそう
276デフォルトの名無しさん
2012/02/11(土) 21:06:14.73277デフォルトの名無しさん
2012/02/11(土) 22:19:30.22 詳解UNIXプログラミング
UNIXカーネルの設計
を読み終わったらまたいらっしゃい
UNIXカーネルの設計
を読み終わったらまたいらっしゃい
278デフォルトの名無しさん
2012/02/11(土) 22:38:19.99 そしてだれもいなくなった(未完)
279デフォルトの名無しさん
2012/02/11(土) 22:48:13.34 嵐の番組ってCMが生理用品ばっかでワロス
280デフォルトの名無しさん
2012/02/11(土) 23:10:22.97 >>278
まだまだ
まだまだ
281デフォルトの名無しさん
2012/02/11(土) 23:58:08.93282デフォルトの名無しさん
2012/02/12(日) 00:18:42.76 2/eが出てるよ
283デフォルトの名無しさん
2012/02/12(日) 00:38:58.73 違いを意識したことないが、その手の本でPOSIX 2008に対応してるのってあるの?
284デフォルトの名無しさん
2012/02/12(日) 01:04:05.10285デフォルトの名無しさん
2012/02/12(日) 01:50:48.07286デフォルトの名無しさん
2012/02/12(日) 02:04:12.95 旨そうなゼンマイだと思ったのにw
>>284
へーLinuxか。2008の機能も実装してたのか。この辺りの各OSごとの実装状況はまるで分からんが、
実装されているならマニュアルもあるだろうからそっちから調べるのもありだな。ありがとう
>>284
へーLinuxか。2008の機能も実装してたのか。この辺りの各OSごとの実装状況はまるで分からんが、
実装されているならマニュアルもあるだろうからそっちから調べるのもありだな。ありがとう
287デフォルトの名無しさん
2012/02/12(日) 04:11:48.67 >実装されているならマニュアルもあるだろう
(;゚ Д゚) …!?
(つд⊂)ゴシゴシ
(;゚ Д゚) …!?
(つд⊂)ゴシゴシ
288デフォルトの名無しさん
2012/02/12(日) 10:22:03.92 http://man7.org/tlpi/translations/index.html
> Japanese O'Reilly Japan Announced (Q2 2011).
> Publication likely in second half of 2012.
絶対出ないと思ってたのに
今の日オラにこんな根性があるとは思わなかった
> Japanese O'Reilly Japan Announced (Q2 2011).
> Publication likely in second half of 2012.
絶対出ないと思ってたのに
今の日オラにこんな根性があるとは思わなかった
289デフォルトの名無しさん
2012/02/12(日) 19:24:06.62 また半端な翻訳かまして、後が出ないよ糞詰まり状態に1000ペリカ
290デフォルトの名無しさん
2012/02/12(日) 20:04:02.50 >>288
ポチってしまった俺は、訳本が出る前に完読してやろうと心に誓うのであった
ポチってしまった俺は、訳本が出る前に完読してやろうと心に誓うのであった
291デフォルトの名無しさん
2012/02/12(日) 22:26:02.57 出版元のサイトからPDFつきが70$で買えるけど(ディスカウントクーポン使用)
もしAmazonでポチってたら強く生きてくれ
もしAmazonでポチってたら強く生きてくれ
292290
2012/02/13(月) 21:39:17.18 なんじゃこの箱枕は!!!!!
('A`)
('A`)
293デフォルトの名無しさん
2012/02/14(火) 07:55:05.11 UNIXのインダイレクションについてレポートにまとめろとかいわれたんだけどUNIXとインダイレクションって
なんか関係あったっけ?
なんか関係あったっけ?
294デフォルトの名無しさん
2012/02/14(火) 08:22:51.30 リダイレクションの聞き間違いだろ。
295デフォルトの名無しさん
2012/02/14(火) 12:40:18.10 >>293
せっかくだからそのままインダイレクションでレポート書いちゃえ
せっかくだからそのままインダイレクションでレポート書いちゃえ
296デフォルトの名無しさん
2012/02/18(土) 03:02:26.53 fork + execlpしたプログラムに引数でstruct構造体を渡すことってできますか?
297デフォルトの名無しさん
2012/02/18(土) 03:03:51.11 馬鹿には無理
298デフォルトの名無しさん
2012/02/18(土) 03:50:08.03 勉強しなおします
299デフォルトの名無しさん
2012/02/18(土) 05:33:46.00 構造体の中身を全部文字列に直して、引数で渡して、その文字列から構造体を作り直せばいいよ
300デフォルトの名無しさん
2012/02/18(土) 09:35:31.88 mmapした領域にコピーしとく、ファイルディスクリプタはそのまま
継承されるから、子プロセスでmmapすりゃいい。
継承されるから、子プロセスでmmapすりゃいい。
301デフォルトの名無しさん
2012/02/18(土) 21:05:03.13 テキストファイルを実行ファイルの一部としてくっつけておいて
実行時にそれを普通のファイルみたいにopen/read/writeすることは可能でしょうか?
実行時にそれを普通のファイルみたいにopen/read/writeすることは可能でしょうか?
302デフォルトの名無しさん
2012/02/18(土) 21:13:51.06 実行するユーザがread, write権限もってりゃできる。
そういうユーザーは実行ファイルを壊すことも、悪質なプログラムに
中身をすり替える事も可能になる。
そういうユーザーは実行ファイルを壊すことも、悪質なプログラムに
中身をすり替える事も可能になる。
303デフォルトの名無しさん
2012/02/18(土) 21:48:35.70 で、どうやって?
304デフォルトの名無しさん
2012/02/18(土) 21:59:22.91 自分が入ってたファイルを書き込みモードでオープンできるかどうかは、
ファイルシステムに拠るんじゃないかな。
パーミッション的にOKだったとしても。
ファイルシステムに拠るんじゃないかな。
パーミッション的にOKだったとしても。
305デフォルトの名無しさん
2012/02/18(土) 22:01:55.04 ファイルシステムじゃなくてOSに拠るのかも。
とりあえずbsd系では平気そうだけどlinuxでは無理だよね。
とりあえずbsd系では平気そうだけどlinuxでは無理だよね。
306デフォルトの名無しさん
2012/02/18(土) 22:26:29.07 Solarisなんかも書き込みはアウト。
Text file is busyになる。
BSDもダメなはずだが…
一つの実行ファイルを配布して、それを実行しながら書き換えようってのは無理。
Mac OS Xならリソースフォークを書き換えればいいが。
Text file is busyになる。
BSDもダメなはずだが…
一つの実行ファイルを配布して、それを実行しながら書き換えようってのは無理。
Mac OS Xならリソースフォークを書き換えればいいが。
307デフォルトの名無しさん
2012/02/18(土) 22:33:01.16 >>306
BSDは手元にないからわからないけど、OS Xは書き込めるよ。
BSDは手元にないからわからないけど、OS Xは書き込めるよ。
308デフォルトの名無しさん
2012/02/19(日) 01:26:23.23 forkしたあとなら出来る?
309デフォルトの名無しさん
2012/02/19(日) 01:36:19.24 textをbusyにしているプロセスが2つに増えるだけ。
310デフォルトの名無しさん
2012/02/19(日) 01:48:39.19 BSDとかMachの仮想記憶だと、同じページをマップしてても書き換えたらコピーが作られるんじゃないの?
だからOS Xは書き込める。
だからOS Xは書き込める。
311デフォルトの名無しさん
2012/02/19(日) 01:55:39.11 それはどのUNIXでも同じ。
ただし書き換えられるのはデータ領域。
実行ファイルが書き換えられるわけじゃない。
Mac OS X(Darwin)は同一ファイル内のリソースフォークを書き換える必要があるから、
HFS+のファイルはそう扱ってる。UFS(今はもうないが)上だと違う。
ただし書き換えられるのはデータ領域。
実行ファイルが書き換えられるわけじゃない。
Mac OS X(Darwin)は同一ファイル内のリソースフォークを書き換える必要があるから、
HFS+のファイルはそう扱ってる。UFS(今はもうないが)上だと違う。
312デフォルトの名無しさん
2012/02/19(日) 02:02:29.64 ああそうなんだ。OS Xでもファイルシステム依存なのね。
313デフォルトの名無しさん
2012/02/19(日) 04:12:08.40 最終的に変更されたバイナリが残ればいいのなら、プログラム起動時にどこかにコピーを作ってそれで上書きすれば
その上書きした方に対して自由に読み書きできると思うんだが、いろいろ怖い
その上書きした方に対して自由に読み書きできると思うんだが、いろいろ怖い
314デフォルトの名無しさん
2012/02/19(日) 04:22:57.33 おまえら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
これで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
315314
2012/02/19(日) 04:25:44.64316デフォルトの名無しさん
2012/02/19(日) 08:45:12.06 同じ問題で、画像データやアイコンデータなんかはどうやって管理しているの?
317デフォルトの名無しさん
2012/02/19(日) 09:29:28.41 なにが?
318デフォルトの名無しさん
2012/02/19(日) 10:27:43.92319デフォルトの名無しさん
2012/02/19(日) 10:43:27.62 リードオンリーなら別の問題だ。実行ファイルに埋め込む場合もある。
320デフォルトの名無しさん
2012/02/19(日) 12:29:42.23 実行ファイルに埋め込んだ場合、「どこにあるか」を知らないと読み出しできないではないか・・・
すんません、そういう関数や手順があるなら教えてください
一般的なLinuxでgcc|g++を想定しての話です
すんません、そういう関数や手順があるなら教えてください
一般的なLinuxでgcc|g++を想定しての話です
321デフォルトの名無しさん
2012/02/19(日) 12:35:41.80 読むだけならデータ化すればいいだけだろ。xpmみたいに。
322デフォルトの名無しさん
2012/02/19(日) 12:44:08.98 >>320
GNU ldなら
ld -r -b binary -o foo.o foo.jpg
でfoo.jpgをオブジェクトファイルにすることができる。
nm foo.oすりゃわかるが、_binary_foo_start、_binary_end_start
というシンボルが定義される。
このオブジェクトファイルを普通にリンクすれば直にアクセスできる。
リードする必要すらない。
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 おっと
× _binary_foo_start、_binary_end_start
○ _binary_foo_start、_binary_foo_end
× _binary_foo_start、_binary_end_start
○ _binary_foo_start、_binary_foo_end
324デフォルトの名無しさん
2012/02/19(日) 12:46:13.97 それをどうやって、(その画像データを読むプログラムの)実行ファイルにくっつけるの?
まさか、異様に長い配列を?・・・・て、静的データを置く領域が足りなくて無理だし
まさか、異様に長い配列を?・・・・て、静的データを置く領域が足りなくて無理だし
325デフォルトの名無しさん
2012/02/19(日) 12:47:30.16326デフォルトの名無しさん
2012/02/19(日) 12:50:51.17 別のファイルにしろ
327デフォルトの名無しさん
2012/02/19(日) 12:55:13.43 いやだ!
328デフォルトの名無しさん
2012/02/19(日) 12:56:29.98329デフォルトの名無しさん
2012/02/20(月) 08:52:20.58330デフォルトの名無しさん
2012/02/20(月) 10:20:53.72331デフォルトの名無しさん
2012/02/20(月) 18:05:11.00 unixでdllのような動的ライブラリーはありますか?
どうやって作ればいいですか
どうやって作ればいいですか
332デフォルトの名無しさん
2012/02/20(月) 18:11:55.71 >>331
なんで「unix 動的ライブラリ」でググらないの?
なんで「unix 動的ライブラリ」でググらないの?
333デフォルトの名無しさん
2012/02/20(月) 18:41:49.66 組み込みとかだとサポートしてないアーキテクチャとかあるんかね。8bitMMUなしとか動くUnixが無いか
334デフォルトの名無しさん
2012/02/20(月) 18:44:46.17 acfがあれば大体うごくよ
335デフォルトの名無しさん
2012/02/20(月) 18:46:58.44 >>331
あるけど、OSによって作り方も使い方も違う。
LinuxとFreeBSDとSolarisの間でも微妙に違うし、MacOS Xとなるとかなり違う。
その辺の違いを埋めようってことでGNU libtoolというのが作られているけど、
こいつがまた色々とアレで、無意味で余計で有害なことをしてくれることがある。
FreeBSDでバージョン番号の付け方が致命的に間違っているとか。
結局、libtoolを使いこなすためにもOSごとの違いを一通り知っておく必要がある。
あるけど、OSによって作り方も使い方も違う。
LinuxとFreeBSDとSolarisの間でも微妙に違うし、MacOS Xとなるとかなり違う。
その辺の違いを埋めようってことでGNU libtoolというのが作られているけど、
こいつがまた色々とアレで、無意味で余計で有害なことをしてくれることがある。
FreeBSDでバージョン番号の付け方が致命的に間違っているとか。
結局、libtoolを使いこなすためにもOSごとの違いを一通り知っておく必要がある。
336デフォルトの名無しさん
2012/02/20(月) 19:06:35.44 バージョン管理する気ないなら、軽微な差しかないと思っていい。
337デフォルトの名無しさん
2012/02/20(月) 19:08:02.12 >>335
バージョン番号の付け方って?
libaaa.so.0.0.0
のような、最後に付加される0.0.0のことか?
これfirefox9.0.1などの数字とは根本的に意味が違うものなのだが、その辺はおわかり?
バージョン番号の付け方って?
libaaa.so.0.0.0
のような、最後に付加される0.0.0のことか?
これfirefox9.0.1などの数字とは根本的に意味が違うものなのだが、その辺はおわかり?
338デフォルトの名無しさん
2012/02/20(月) 19:12:55.43 最近のFirefoxもバージョンの振り方間違ってると思うw
339デフォルトの名無しさん
2012/02/20(月) 19:16:16.45340デフォルトの名無しさん
2012/02/20(月) 19:17:37.67 >>339
嘘教えんなwww
嘘教えんなwww
341デフォルトの名無しさん
2012/02/20(月) 19:22:37.14 Mac OS Xではこんなような感じで作った記憶がある。
cc -fno-common -c a.o
cc -dynamiclib -flat_namespace -undefined suppress -o liba.1.0.0.dylib a.o
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 >338
あれはひどいな
あれはひどいな
343デフォルトの名無しさん
2012/02/20(月) 21:50:08.25 ファイル 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./
#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 #include <hello.h> のいみがわかりません
345343
2012/02/20(月) 21:52:35.46 これの 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
最も基本的な方法だと以下のようになる。
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
346343
2012/02/20(月) 21:53:39.53 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
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
347343
2012/02/20(月) 21:55:09.86 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の対応状況に状況に応じて、都合良い方でビルドされる。(基本的には動的ライブラリの使用が優先される。優先度の変更はオプションで行える)
これは何を意味するかというと、動的ライブラリーが使用できない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 libtoolとかautotoolとか移植を簡単にするためのツールなのに、
そのツール自体の移植が非常に困難という矛盾。
考えた奴死ねばいいのに。
そのツール自体の移植が非常に困難という矛盾。
考えた奴死ねばいいのに。
349デフォルトの名無しさん
2012/02/21(火) 00:17:38.61 >>348
?
なにを言ってるんだ?
よく考えてみろ
移植という作業の、面倒な部分のみを『抽出』して、そこを隠蔽するツールがlibtoolやautoconf。
つまり、アプリの多プラットフォーム対応の際の、面倒な部分のみを抽出した問題。この問題を解く作業こそが、libtoolやautomakeの移植作業というもの。
面倒な問題だけを一ヶ所にあつめて、問題を解こうとしてるのだから、困難なのは当然だろ。
逆に、抽出した困難さが、もしも簡単に解ける程度であれば(簡単にlibtoolを移植できたのであれば)、
それはもともと、切り分けるに値しないほど簡単な問題だったということになる。
?
なにを言ってるんだ?
よく考えてみろ
移植という作業の、面倒な部分のみを『抽出』して、そこを隠蔽するツールがlibtoolやautoconf。
つまり、アプリの多プラットフォーム対応の際の、面倒な部分のみを抽出した問題。この問題を解く作業こそが、libtoolやautomakeの移植作業というもの。
面倒な問題だけを一ヶ所にあつめて、問題を解こうとしてるのだから、困難なのは当然だろ。
逆に、抽出した困難さが、もしも簡単に解ける程度であれば(簡単にlibtoolを移植できたのであれば)、
それはもともと、切り分けるに値しないほど簡単な問題だったということになる。
350デフォルトの名無しさん
2012/02/21(火) 00:24:37.56 なんで、システムライブラリ、ヘッダーをconfigureの度にスキャンするんだ?
バカ丸出しのシステムだろ。
dllのリンクのために何行のツール作ってるんだ?
リンクのために5行以上の記述が必要なシステムなんか見たことないぞ。
バカ丸出しのシステムだろ。
dllのリンクのために何行のツール作ってるんだ?
リンクのために5行以上の記述が必要なシステムなんか見たことないぞ。
351デフォルトの名無しさん
2012/02/21(火) 00:31:39.51 まあ色々なプラットフォームでのビルドをサポートするためのツールだし。
あとキャッシュを消さなければ毎回スキャンはしないかも。
あとキャッシュを消さなければ毎回スキャンはしないかも。
352デフォルトの名無しさん
2012/02/21(火) 00:46:44.25353デフォルトの名無しさん
2012/02/21(火) 00:54:44.67 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で実行環境情報を積極的に得るようにすれば、プログラム最適化の幅が広がるはず。
./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 thx!!
355デフォルトの名無しさん
2012/02/21(火) 01:10:16.32 ちなみにCMakeはもっとスゴイぞ!
356デフォルトの名無しさん
2012/02/21(火) 01:26:53.76357デフォルトの名無しさん
2012/02/21(火) 01:31:38.51 バカなautotools
checking ...
これが世界中でどれだけ行われてるんだ? その電力で何人のアフリカの子供が…
システムライブラリなんか一回スキャンしてデータベース作ればOK。
考えた奴死ね。
checking ...
これが世界中でどれだけ行われてるんだ? その電力で何人のアフリカの子供が…
システムライブラリなんか一回スキャンしてデータベース作ればOK。
考えた奴死ね。
358デフォルトの名無しさん
2012/02/21(火) 01:35:41.52 >>353
> たとえばプロセッサー数ならば configure.in に AX_COUNT_CPUS と一行書いておけば、(もし指定してあれば)config.hに #define CPU_COUNT 4 等のようにマクロ定義される。これを利用してコードをを最適化できる。
autoconfが対応しているOS場合の事。対応していないときに変更箇所を探して、m4のマニュアル読みながらm4マクロ書いて…
Makefileに
NUM_CORE=4
5秒で終わるわ。
> たとえばプロセッサー数ならば 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 もうちょっとましな指摘は書けないのかよw
360デフォルトの名無しさん
2012/02/21(火) 02:55:02.78 >>357
おまい頭良いな
おまい頭良いな
361デフォルトの名無しさん
2012/02/21(火) 07:59:40.53 アフリカの子供が不幸なのはアフリカの大人がDQNだからだよ
日本で言えば、赤ん坊を車に放置してパチンコ台の前に陣取る親みたいなものだ
日本で言えば、赤ん坊を車に放置してパチンコ台の前に陣取る親みたいなものだ
362デフォルトの名無しさん
2012/02/21(火) 09:06:59.31 >>357
話はそんな簡単じゃないみたいだぞ。
例えばソフトをビルドするときにある関数が期待した振る舞い(フレーバー)で利用可能
かどうか、はシステムライブラリにそれがあるかだけでは決まらない(例えばコンパイラ
のオプション等)ので。
話はそんな簡単じゃないみたいだぞ。
例えばソフトをビルドするときにある関数が期待した振る舞い(フレーバー)で利用可能
かどうか、はシステムライブラリにそれがあるかだけでは決まらない(例えばコンパイラ
のオプション等)ので。
363デフォルトの名無しさん
2012/02/21(火) 09:17:44.19 >>362
configureが検出したものをオプションと一緒に記録しておけばいいんじゃない?
コンパイルオプションで挙動が変わる関数くらい数えられる程度では?
若しくは、そういった特殊な挙動を要求するものだけはDBを使わないようにすればいい
configureごとに全く同じ処理をキャッシュできればそれだけで随分速くなる
configureが検出したものをオプションと一緒に記録しておけばいいんじゃない?
コンパイルオプションで挙動が変わる関数くらい数えられる程度では?
若しくは、そういった特殊な挙動を要求するものだけはDBを使わないようにすればいい
configureごとに全く同じ処理をキャッシュできればそれだけで随分速くなる
364デフォルトの名無しさん
2012/02/21(火) 09:41:37.47 オプションに利用可能性が依存するって、どの規格(c90, c99, ...)を使うかくらい。
その以外で振る舞いや有無が変わる関数なんて使ってられんわ。使う価値ないね。
もしあるなら、そんなクズな関数を捨てれば何人の餓えているアフリカの子供が…
その以外で振る舞いや有無が変わる関数なんて使ってられんわ。使う価値ないね。
もしあるなら、そんなクズな関数を捨てれば何人の餓えているアフリカの子供が…
365デフォルトの名無しさん
2012/02/21(火) 10:15:13.00 過度の汎用性を求めて(といっても所詮Unix限定だけど)汚い設定ファイル地獄
便利さも体感できないって、なんだか一昔前のJava + J2SE + メタフレームワーク地獄
みたい
m4とXMLの違いがあるけどね
今更m4なんて弄りたがるの変態ぐらいでしょ
それはそうと、.laや.pcにフルパス埋め込まれるのは何で?
あれrelocateしにくいから嫌なんだけど
.aや.soにはそんなもん埋め込まれないのに
便利さも体感できないって、なんだか一昔前のJava + J2SE + メタフレームワーク地獄
みたい
m4とXMLの違いがあるけどね
今更m4なんて弄りたがるの変態ぐらいでしょ
それはそうと、.laや.pcにフルパス埋め込まれるのは何で?
あれrelocateしにくいから嫌なんだけど
.aや.soにはそんなもん埋め込まれないのに
366デフォルトの名無しさん
2012/02/21(火) 10:35:54.54 >>364
きみがパソコンすてればアフリカの・・・
きみがパソコンすてればアフリカの・・・
367デフォルトの名無しさん
2012/02/21(火) 11:12:28.96 さすがに古臭い感じはする。
こんだけ広まっちゃうと今さらどうこうするのは難しいだろうけど。
こんだけ広まっちゃうと今さらどうこうするのは難しいだろうけど。
368デフォルトの名無しさん
2012/02/21(火) 13:39:46.81369デフォルトの名無しさん
2012/02/21(火) 15:03:36.68370デフォルトの名無しさん
2012/02/21(火) 17:40:15.55371デフォルトの名無しさん
2012/02/21(火) 18:15:57.69 >>368
規格に関するオプション以外であるなら実例だせば議論が進むぞ。
「ある」だけ連呼すんなよ。
それが人間が管理できる以上の組み合わせならautoconfは意味があるわけだし、
数個なら意味なしという事だ。
規格に関するオプション以外であるなら実例だせば議論が進むぞ。
「ある」だけ連呼すんなよ。
それが人間が管理できる以上の組み合わせならautoconfは意味があるわけだし、
数個なら意味なしという事だ。
372デフォルトの名無しさん
2012/02/22(水) 06:42:18.85373デフォルトの名無しさん
2012/02/22(水) 09:59:24.55 > いや、コンパイラのオプションでかなり変わるっしょ。
つまり、これの実例は挙げられないという事だね。
> 話が通じてないならいいよ。
捨て台詞がみっとも茄子。
つまり、これの実例は挙げられないという事だね。
> 話が通じてないならいいよ。
捨て台詞がみっとも茄子。
374デフォルトの名無しさん
2012/02/22(水) 15:20:49.78 いい加減にして
375デフォルトの名無しさん
2012/02/23(木) 18:46:17.26 雲丹板って人減ってます?
376デフォルトの名無しさん
2012/02/23(木) 19:45:24.15 >>337
-version-info CURRENT:REVISION:AGE
と指示したら、標準的なUNIX系環境では、
libfoo.so.CURRENT-AGE.AGE.REVISION
となるべきだよね。ところがlibtoolは、FreeBSD,NetBSD,HP-UXなどでは、
libfoo.so.CURRENT.AGE.REVISION
というバージョン番号を振ってしまう。
-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 >>375
2ch全体が絶滅危惧種
2ch全体が絶滅危惧種
378デフォルトの名無しさん
2012/02/24(金) 10:00:26.97 非同期シグナルセーフなprintf誰か作ってー
379デフォルトの名無しさん
2012/02/24(金) 10:17:07.20 そういえば、memcpyは非同期シグナルセーフじゃ無いんだな
380デフォルトの名無しさん
2012/02/24(金) 16:59:31.03 どなたか教えて頂けたらなと思います。
多分Linuxだけっぽいのですが、TCPでローカルホストにあるポートにconnect()するとして、
自分自身のソケットに接続できることに気づきました。
以下、pythonでですが、
from socket import *
s = socket()
s.bind(('', 5656))
s.connect(('localhost', 5656))
↑connect出来てしまう。netstatでみるとESTABLISHEDが
1つだけあるような状況になります。
明示的にbindしてなくても、たまたま自分自身が開いた
エフェメラルポートにも接続できちゃうみたいです。
感覚的には間違った動作に思えますが、そういう仕様なのでしょうか。
多分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 TCPの接続は<src IP, src port, dst IP, dst port>の四つ組で識別できる。
たまたま1と3、2と4が一緒でも特に支障はない。
プロトコル状態遷移の表の作り方によっては禁止もできるが。
たまたま1と3、2と4が一緒でも特に支障はない。
プロトコル状態遷移の表の作り方によっては禁止もできるが。
382デフォルトの名無しさん
2012/02/24(金) 17:33:05.37 お前ウソついてない? listenしてないのにconnectできちゃうの?
pythonのsocketは知らんけど、勝手にlistenする?
> from socket import *
> s = socket()
> s.bind(('', 5656))
> s.connect(('localhost', 5656))
pythonのsocketは知らんけど、勝手にlistenする?
> from socket import *
> s = socket()
> s.bind(('', 5656))
> s.connect(('localhost', 5656))
383デフォルトの名無しさん
2012/02/24(金) 17:55:14.86384デフォルトの名無しさん
2012/02/24(金) 18:57:43.25 >>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");
}
> 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 カマー本とかスティーブンス本とか、
ソケットプログラミングFAQに詳しく書いてあるから読んでみてねん。
ソケットプログラミングFAQに詳しく書いてあるから読んでみてねん。
386380
2012/02/24(金) 20:19:31.29 >>381
>>383
>>385
ありがとうございます、勉強になります。
仕様上はありってところは驚きです。
スティーブンスの詳解TCP/IPとUNIXネットワークプログラミングならありますので、読み直してみます。
試しにバーチャルで2つLinuxマシン用意して、
お互いにconnectしあうようにしたら繋がってしまいました。
SYN_SENTを維持しなきゃダメみたいなんで、
RSTが届かないようにフィルタする必要がありましたけど。
ちなみにpythonじゃなくても同じですよ。
Cで書くとわかりづらいかな?と思ったのでpythonで書きました。
ってことは、LinuxでTCPを使うような時って、
エフェメラルポートを受信ポートに使うのって危険?
予期せず自分自身のソケットに接続してしまうかもしれない。
まあ、どっちかと言うと先にポートが使われてて開けられなかった、とかの方がありそうですけどね。
>>383
>>385
ありがとうございます、勉強になります。
仕様上はありってところは驚きです。
スティーブンスの詳解TCP/IPとUNIXネットワークプログラミングならありますので、読み直してみます。
試しにバーチャルで2つLinuxマシン用意して、
お互いにconnectしあうようにしたら繋がってしまいました。
SYN_SENTを維持しなきゃダメみたいなんで、
RSTが届かないようにフィルタする必要がありましたけど。
ちなみにpythonじゃなくても同じですよ。
Cで書くとわかりづらいかな?と思ったのでpythonで書きました。
ってことは、LinuxでTCPを使うような時って、
エフェメラルポートを受信ポートに使うのって危険?
予期せず自分自身のソケットに接続してしまうかもしれない。
まあ、どっちかと言うと先にポートが使われてて開けられなかった、とかの方がありそうですけどね。
387デフォルトの名無しさん
2012/02/24(金) 21:48:04.19 確かネットワークプログラミングスレってのがあったと思うけど、それはまあいいとして、
ソケットプログラミングのFAQは必読。すごくいいFAQ。
プログラミング系FAQのベストの一つなのは間違いない。
以下は日本語訳。
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/
ソケットプログラミングのFAQは必読。すごくいいFAQ。
プログラミング系FAQのベストの一つなのは間違いない。
以下は日本語訳。
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/
388380
2012/02/25(土) 03:39:23.24 >>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になるのに別の手段が存在するということでしょうか?
>それから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 一応ネットワークプログラミングスレで聞いた方がよさそうだと言っとく
http://toro.2ch.net/test/read.cgi/tech/1293284816/
http://toro.2ch.net/test/read.cgi/tech/1293284816/
391デフォルトの名無しさん
2012/03/10(土) 20:50:36.82 単純なネタで恐縮ですが、errnoは並列化プログラミングに対して安全なのでしょうか?
主要な並列化手法の実装だけでもかまわないので、ご存知の方はコメントください。
また、チェック対象となるシステムコールやライブラリ関数の直前にいちいちerrno=0を
置くのはいまいちいけていない気がするのですが、もっとかっこいい方法はないですか?
主要な並列化手法の実装だけでもかまわないので、ご存知の方はコメントください。
また、チェック対象となるシステムコールやライブラリ関数の直前にいちいちerrno=0を
置くのはいまいちいけていない気がするのですが、もっとかっこいい方法はないですか?
392デフォルトの名無しさん
2012/03/10(土) 21:38:45.84 1 スレッドライブラリが用意されている環境ならば、
#define errno (* __error())
のようにスレッド毎の変数になっているので安全。
2 システムコールやライブラリでエラーが発生したときに
errnoが 更新させる仕様なので、コールする前にerrnoを
クリアする必要はない。しかしerrnoを比較するとこでエ
ラー判定をしてはいけない。システムコールならば戻り値
が負、ライブラリならばその仕様に従いエラー判定を行う。
#define errno (* __error())
のようにスレッド毎の変数になっているので安全。
2 システムコールやライブラリでエラーが発生したときに
errnoが 更新させる仕様なので、コールする前にerrnoを
クリアする必要はない。しかしerrnoを比較するとこでエ
ラー判定をしてはいけない。システムコールならば戻り値
が負、ライブラリならばその仕様に従いエラー判定を行う。
393デフォルトの名無しさん
2012/03/10(土) 21:41:01.34 >>391
> errno is thread-local; setting it in one thread does not affect its value in any other thread.
うちのLinuxのman errnoから引用。どこかで定められているはずだけど、どの規格か知らない
> 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.51395デフォルトの名無しさん
2012/03/10(土) 21:56:50.40396デフォルトの名無しさん
2012/03/11(日) 00:47:10.17 どもです(´・ω・`)
397デフォルトの名無しさん
2012/03/11(日) 03:03:42.12398デフォルトの名無しさん
2012/03/11(日) 07:12:41.24 >>397
日本語でおk
日本語でおk
399デフォルトの名無しさん
2012/03/11(日) 07:59:41.37400デフォルトの名無しさん
2012/03/11(日) 21:40:09.08 おねがいします。
親子関係にないプロセス(PID既知)の生存を確認するための通常の手法はなんですか?
親子関係にないプロセス(PID既知)の生存を確認するための通常の手法はなんですか?
401デフォルトの名無しさん
2012/03/11(日) 21:48:39.59 kill(pid, 0);
402デフォルトの名無しさん
2012/03/11(日) 22:47:06.43 ありがとうございます!
・・・というか、一度はmanに目を通しているから、間違いなく読んでいるはずなのだが・・・
恥をかかないと覚えないということか・・・
・・・というか、一度はmanに目を通しているから、間違いなく読んでいるはずなのだが・・・
恥をかかないと覚えないということか・・・
403デフォルトの名無しさん
2012/03/12(月) 00:05:33.16 >>402
全部暗記できちゃうほうが異常者ですよ。
全部暗記できちゃうほうが異常者ですよ。
404デフォルトの名無しさん
2012/03/12(月) 00:08:19.11 /procという手もある。(OSによっては)
405デフォルトの名無しさん
2012/03/14(水) 02:39:31.61406デフォルトの名無しさん
2012/03/14(水) 10:37:43.36407デフォルトの名無しさん
2012/03/14(水) 12:12:14.56 >>405
中身はいいけど、目次の暗記は必須だろ
中身はいいけど、目次の暗記は必須だろ
408デフォルトの名無しさん
2012/03/14(水) 12:13:49.31 >>405
「どっかで見たなー」 っていう記憶がもっとも大事なんだよ。
「どっかで見たなー」 っていう記憶がもっとも大事なんだよ。
409デフォルトの名無しさん
2012/03/15(木) 16:20:19.04 「もっとも大事」はどうなんだろう?
410デフォルトの名無しさん
2012/03/16(金) 01:18:56.16 教えてください
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関数に入るのかわかりませんでした。
教えて頂けないでしょうか?
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 状態名の関数は全部最後に関数を返してるじゃん?
それがカーネルが次に移る状態なのよ。
その状態で、実行すべき処理を記述してある関数を、
状態そのものの代わりにしている。
void
transition(state_t s)
{
for (;;)
s = (state_t) (*s)();
}
だからこれが状態遷移マシンになるわけ。
requested_transitionは引数とか、シグナルとか、
上の関数を使った状態遷移からは逸脱するものを扱うためにある。
それがカーネルが次に移る状態なのよ。
その状態で、実行すべき処理を記述してある関数を、
状態そのものの代わりにしている。
void
transition(state_t s)
{
for (;;)
s = (state_t) (*s)();
}
だからこれが状態遷移マシンになるわけ。
requested_transitionは引数とか、シグナルとか、
上の関数を使った状態遷移からは逸脱するものを扱うためにある。
412410
2012/03/17(土) 06:18:23.32 すいません、もう少し質問させてください。
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の場所が分からないと思うんですけれど...
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 シングルユーザーシェルのプロセスIDがpidで、
do {
} while (wpid != pid && !requested_transition);
で、親プロセス(init)はシングルユーザーシェルの終了を待っている。
(シングルユーザーシェルはインタラクティブシェル)
> 子プロセスのシェルはどこからSIGSTOP受け取るんでしょうか?
親がシェルならsuspendして親シェルに戻るけど、親がシェルじゃないから、
シングルユーザーシェルからkill -STOP $$とかやったら固まるでしょ。
それを避けるためにリスタートする。
do {
} while (wpid != pid && !requested_transition);
で、親プロセス(init)はシングルユーザーシェルの終了を待っている。
(シングルユーザーシェルはインタラクティブシェル)
> 子プロセスのシェルはどこからSIGSTOP受け取るんでしょうか?
親がシェルならsuspendして親シェルに戻るけど、親がシェルじゃないから、
シングルユーザーシェルからkill -STOP $$とかやったら固まるでしょ。
それを避けるためにリスタートする。
414デフォルトの名無しさん
2012/03/17(土) 16:04:37.77 >>412
シングルユーザモードがなにか理解できてる?
シングルユーザモードがなにか理解できてる?
415デフォルトの名無しさん
2012/03/17(土) 16:08:03.24 >>413
シングルユーザモードの典型的なセッションは、
1. シングルユーザモード指定して起動
2. シングルユーザモードのシェルが動く。動いているサービスはほぼ皆無。
3. fsckしたり、パスワード変更したり、criticalなファイル直したり。
4. Ctrl-Dでシングルユーザモードのシェル終了。(exitコマンドでも)
5. マルチユーザーモードへ。(最近のUNIXは起動シーケンスが複雑で、再起動したいケースもままある)
シングルユーザモードの典型的なセッションは、
1. シングルユーザモード指定して起動
2. シングルユーザモードのシェルが動く。動いているサービスはほぼ皆無。
3. fsckしたり、パスワード変更したり、criticalなファイル直したり。
4. Ctrl-Dでシングルユーザモードのシェル終了。(exitコマンドでも)
5. マルチユーザーモードへ。(最近のUNIXは起動シーケンスが複雑で、再起動したいケースもままある)
416410
2012/03/18(日) 04:28:21.50 貴重なお時間頂いて、申し訳ないです。
/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'なんですか?
です。
/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'なんですか?
です。
417410
2012/03/18(日) 05:35:51.09 すいません。
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;
}
つまり、何も指定しない場合は'-'が答えなんですね。
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;
}
つまり、何も指定しない場合は'-'が答えなんですね。
418410
2012/03/18(日) 05:47:21.65 >つまり、何も指定しない場合は'-'が答えなんですね。
すいません。何も指定しない場合は何もないが正解でした。
suwordなんて関数、初めて見ました。
すいません。何も指定しない場合は何もないが正解でした。
suwordなんて関数、初めて見ました。
419デフォルトの名無しさん
2012/03/18(日) 22:40:11.06 たしかに「どっかで見たなー」は大事だけど
そのうち「こんなのがあるはずだ」になって
無いものを探して時間を無駄にすることになる
そのうち「こんなのがあるはずだ」になって
無いものを探して時間を無駄にすることになる
420デフォルトの名無しさん
2012/03/18(日) 22:49:00.71 man 9 store
man 9 fetch
man 9 copy
man 9 fetch
man 9 copy
421デフォルトの名無しさん
2012/03/19(月) 08:17:04.29 m9(^Д^)プギャー
422デフォルトの名無しさん
2012/03/19(月) 09:55:12.39 >>419
30分探して見つからなかったら、「無い」よ
30分探して見つからなかったら、「無い」よ
423デフォルトの名無しさん
2012/03/19(月) 09:59:41.84 あったはずのものが見つからないと気持ち悪くて他の事が出来ない。
多分精神疾患なんだろう。
多分精神疾患なんだろう。
424デフォルトの名無しさん
2012/03/19(月) 10:13:03.18 あったはずのものが見つからない・・・・
夢・・・とか
夢・・・とか
425デフォルトの名無しさん
2012/03/19(月) 10:15:31.01 >>424
呪いが解けてよかったな
呪いが解けてよかったな
426デフォルトの名無しさん
2012/03/19(月) 10:36:22.33 >>424
あるはずの現実を見ようとしていない状態より遥かにマシだ
あるはずの現実を見ようとしていない状態より遥かにマシだ
427オカルトの世界にようこそ
2012/03/19(月) 10:46:03.46 存在しないものをプログラミングするとか、
ゴーストを実装するようなもの。
ゴーストを実装するようなもの。
428デフォルトの名無しさん
2012/03/19(月) 11:31:33.10 まさにWizard
429デフォルトの名無しさん
2012/03/19(月) 11:49:08.41 どどど同邸ちゃうわ・・・!
430デフォルトの名無しさん
2012/03/19(月) 12:07:52.39 切迫していなければ
別に回り道したっていいと思うけど
最終的に正しい答えを導き出しているんだし
そのぶん、ソースも読んだだろうし
別に回り道したっていいと思うけど
最終的に正しい答えを導き出しているんだし
そのぶん、ソースも読んだだろうし
431デフォルトの名無しさん
2012/03/19(月) 13:03:50.05432デフォルトの名無しさん
2012/03/19(月) 14:19:30.88 ゴーストもいればゾンビもいる
UNIX界はほんまホラーやで
UNIX界はほんまホラーやで
433デフォルトの名無しさん
2012/03/19(月) 14:30:39.17434デフォルトの名無しさん
2012/03/19(月) 14:52:04.58 仮想コンソールの窓越しにしか見えないスタンドのような存在か
435デフォルトの名無しさん
2012/03/19(月) 16:05:39.14 みなし児もいる悲しい街なのですよ。
436デフォルトの名無しさん
2012/03/19(月) 18:17:26.17 お前ら、非技術的な話題だと食いつき良いな。
437デフォルトの名無しさん
2012/03/19(月) 18:18:17.58 技術的な話題も好物ですよ
2012/03/31(土) 00:06:18.32
物欲を満足しつつ、ちょっとしたUNIXプログラミングの実験&iPad用アプリの開発を
こなせるマシンを購入検討したいのですが、現行機種で何かオススメはありますか?
こなせるマシンを購入検討したいのですが、現行機種で何かオススメはありますか?
2012/04/01(日) 19:49:49.18
Mac板で相談しなよ。
2012/04/01(日) 19:56:56.10
いや、UNIXプログラミングができるからこそのMac選択で、
似たようなことを考えた先達がいると思うからこそここでのQです
ぶっちゃけ、Mac板でまともな回答が帰ってくるとは思えないし
似たようなことを考えた先達がいると思うからこそここでのQです
ぶっちゃけ、Mac板でまともな回答が帰ってくるとは思えないし
441営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 02:54:08.78 >>440
MacBook Airの一番安いのでスタバでドヤ顔しなさい
MacBook Airの一番安いのでスタバでドヤ顔しなさい
2012/04/02(月) 07:13:56.20
昨年、台湾の雑誌『遠見』が20歳以上の1000人にアンケートしたところ
「一番尊敬する国」「一番移住したい国」などの筆頭に日本が挙げられた
そうだ。
そういえば以前、台湾に旅行をした際に、現地で知り合った人に好意的に受け
入れられ、台湾は「親日」なんだと実感したことがある。
でも、どうして台湾は親日なのだろう。
産能短期大学講師で『日本に恋した台湾人』などの著書で知られる謝 雅梅さん
にお話を伺った。
「やはり歴史背景は大きいですね。日本統治時代(1895〜1945年)、
その目的はどうであれ、日本が台湾のインフラを整備したことは今でも高く
評価されてます。72歳になる私の父は、小学校4年生まで日本の教育を受け
ましたが、不思議と日本人に立ち居振る舞いも似てくるんですね。いわゆる
日本の頑固親父と一緒(笑)」
では、65年生まれの謝さんや若い世代にも親日派が多いのはなぜ?
「私の世代の場合、反日教育も受けましたが、父の世代からいい印象も聞いて
います。日本のテレビ番組や雑誌なども昔からあって、よく見てました。今、
20代くらいの若者には、日本の音楽やファッション、マンガやゲームなどの
サブカルチャーが人気です。彼らの世代になると、もう日本との歴史をよく
知らないんですよ。台湾も、日本のようにアメリカの影響は大きいんですが、
やはり同じアジアの日本文化の方が肌に合う。これは一過性の流行ではなく、
親日感情は昔から繋がっているんです」(同)
http://headlines.yahoo.co.jp/hl?a=20070802-00000002-rec_r-int
「一番尊敬する国」「一番移住したい国」などの筆頭に日本が挙げられた
そうだ。
そういえば以前、台湾に旅行をした際に、現地で知り合った人に好意的に受け
入れられ、台湾は「親日」なんだと実感したことがある。
でも、どうして台湾は親日なのだろう。
産能短期大学講師で『日本に恋した台湾人』などの著書で知られる謝 雅梅さん
にお話を伺った。
「やはり歴史背景は大きいですね。日本統治時代(1895〜1945年)、
その目的はどうであれ、日本が台湾のインフラを整備したことは今でも高く
評価されてます。72歳になる私の父は、小学校4年生まで日本の教育を受け
ましたが、不思議と日本人に立ち居振る舞いも似てくるんですね。いわゆる
日本の頑固親父と一緒(笑)」
では、65年生まれの謝さんや若い世代にも親日派が多いのはなぜ?
「私の世代の場合、反日教育も受けましたが、父の世代からいい印象も聞いて
います。日本のテレビ番組や雑誌なども昔からあって、よく見てました。今、
20代くらいの若者には、日本の音楽やファッション、マンガやゲームなどの
サブカルチャーが人気です。彼らの世代になると、もう日本との歴史をよく
知らないんですよ。台湾も、日本のようにアメリカの影響は大きいんですが、
やはり同じアジアの日本文化の方が肌に合う。これは一過性の流行ではなく、
親日感情は昔から繋がっているんです」(同)
http://headlines.yahoo.co.jp/hl?a=20070802-00000002-rec_r-int
2012/04/05(木) 16:47:06.60
ライブラリーを利用せずにカーネルを直接呼び出すアプリを作りたいんですが
参考にするにはどんな検索ワードで探せばいいでしょうか?
参考にするにはどんな検索ワードで探せばいいでしょうか?
2012/04/05(木) 16:59:55.74
linux システムコール アセンブラ
2012/04/05(木) 17:26:19.45
>>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絡みのカーネルインターフェースがどうなってるかとかも分かる。
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絡みのカーネルインターフェースがどうなってるかとかも分かる。
2012/04/05(木) 17:28:21.87
この頃から基本的に変わってないので読んでみるのも楽しいかも。
http://www.amazon.co.jp/Lions%E2%80%99-Commentary-UNIX-Ascii-books/dp/4756118445/
http://www.amazon.co.jp/Lions%E2%80%99-Commentary-UNIX-Ascii-books/dp/4756118445/
2012/04/06(金) 18:23:12.15
2012/04/06(金) 18:27:09.49
strftimeのフォーマットに則ってるかどうかを
格好よく調べる方法ない?
格好よく調べる方法ない?
2012/04/06(金) 22:19:53.98
450デフォルトの名無しさん
2012/04/12(木) 09:27:46.65 XLIBに出てくるATOMって何ですか?
451デフォルトの名無しさん
2012/04/25(水) 19:42:17.01 COMのアウトプロセスサーバーみたいに
プロセス間で一つのオブジェクトを共有し、
一方のプロセスからもう一方のプロセスを制御する方法はありますか?
単に値を共有するだけならpipeやmmapを
使えばいいんでしょうが面倒です。
プロセス間で一つのオブジェクトを共有し、
一方のプロセスからもう一方のプロセスを制御する方法はありますか?
単に値を共有するだけならpipeやmmapを
使えばいいんでしょうが面倒です。
452デフォルトの名無しさん
2012/04/26(木) 10:47:00.87 socketとかsignalで通信するのは駄目なの?
453デフォルトの名無しさん
2012/04/26(木) 12:40:04.59 mmapすら面倒ならマルチスレッドで作るとか
454デフォルトの名無しさん
2012/04/26(木) 23:12:18.99 CPU、GPUを利用(プログラム)するには?
http://togetter.com/li/293863
http://togetter.com/li/293863
455デフォルトの名無しさん
2012/04/26(木) 23:33:13.30 >>451
dbus使えば?
dbus使えば?
456デフォルトの名無しさん
2012/04/28(土) 20:54:43.28 sigactionについての質問です。
古いソースではsigvecを使っていて、ちゃんとそれが動いているんだけど
私が使っているsignal.hヘッダの中にはsigvecが定義されていません。
どうして動くんでしょうか
古いソースではsigvecを使っていて、ちゃんとそれが動いているんだけど
私が使っているsignal.hヘッダの中にはsigvecが定義されていません。
どうして動くんでしょうか
457デフォルトの名無しさん
2012/04/29(日) 03:02:46.33 obsoleteだから、特に指定しないとcompileは出来ないけど、linkは出来るようになっているんでしょう。
458デフォルトの名無しさん
2012/05/01(火) 15:44:20.25459デフォルトの名無しさん
2012/05/01(火) 15:54:40.31 シェアードメモリ?
460デフォルトの名無しさん
2012/05/01(火) 16:02:34.37 分散オブジェクト?
461デフォルトの名無しさん
2012/05/01(火) 16:07:08.30 単にExcelの制御みたいな感じで、プロセスとか接続気にせず操作したいだけです
462デフォルトの名無しさん
2012/05/01(火) 16:30:28.03 こういうのかなぁ
ttp://ja.wikipedia.org/wiki/Open_Network_Computing_Remote_Procedure_Call
ttp://ja.wikipedia.org/wiki/Open_Network_Computing_Remote_Procedure_Call
463デフォルトの名無しさん
2012/05/01(火) 16:44:26.49464デフォルトの名無しさん
2012/05/01(火) 23:29:29.48 こんばんは。
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;
}
}
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 つ loop unrolling
466464
2012/05/02(水) 12:10:30.82 >>465
loop unrollingっての知らなかったです。
ひとつ賢くなりました!
Wikipedia: “毎回の繰り返しごとに発生する「ループの終了」条件のテストを
減少させる(もしくはなくす)事によって、実行速度を向上させる”
・・ですね。
でも、「ループの終了」条件のテストをforにいれず、
結局1行ごとに4行毎回判定してるので、なんとなく関係ないような気が・・
あと一応、測定してみましたが、4行に分けるより、
1行にまとめたほうがわずかばかり速そうです。
※VMware上 Linux x86_64 gcc4.4.6 -O3 で、100000000回ループを30回測定
(なんでそういう結果が出たかは調べていません)
それとも、やっぱり状況によっては 4行書いたほうが最適化とかかかって
速くなったりするものなのでしょうか。
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 ていうか、djbのスタイルを参考にするのはやめれ。
根性で標準ライブラリを使わん、とか、癖があり過ぎる。
根性で標準ライブラリを使わん、とか、癖があり過ぎる。
468デフォルトの名無しさん
2012/05/02(水) 15:55:45.32 >>466
速度に関する最適化は、普通にコーディングした後に、どうしても速度的な要件を満たせてないときに
限って、ボトルネックがどこか「実際に測定して場所を特定」してから行うもの。
数nsレベルの調整なんかしなくていい。
速度に関する最適化は、普通にコーディングした後に、どうしても速度的な要件を満たせてないときに
限って、ボトルネックがどこか「実際に測定して場所を特定」してから行うもの。
数nsレベルの調整なんかしなくていい。
469464
2012/05/02(水) 16:43:21.92 もちろんスタイルをまねする気も、速度を気にしてるわけではないですよ。
普通の人から見たら、ただの縛りプレイにしかみえないですし。
ただ、偏執狂なんていわれるほどの人だから、
この意味無いように見えるコードも何かあるのかな、と。
daemontoolsはよく使いますので、
コードも見てみようと思ったのが発端です。
普通の人から見たら、ただの縛りプレイにしかみえないですし。
ただ、偏執狂なんていわれるほどの人だから、
この意味無いように見えるコードも何かあるのかな、と。
daemontoolsはよく使いますので、
コードも見てみようと思ったのが発端です。
470デフォルトの名無しさん
2012/05/02(水) 18:07:50.56 本当に意味わかんないなこれ。
4bytes コピーして最適化したつもりが気が変わって無理矢理戻したとか、いや違うな。
素直に strlen() 使った方が最適化してくれていいのになあ。
4bytes コピーして最適化したつもりが気が変わって無理矢理戻したとか、いや違うな。
素直に strlen() 使った方が最適化してくれていいのになあ。
471デフォルトの名無しさん
2012/05/02(水) 18:49:53.19 どうせ最適化がかかるだろうし無駄な書き方ならライセンスで面倒なことが起きないとか?
472デフォルトの名無しさん
2012/05/02(水) 19:01:32.57 >>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
>でも、「ループの終了」条件のテストを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 いずれにしろ、その部分が、全体の90%の時間を食ってる、10%のコードだ、
ということがわかってからでいいことだな。
ということがわかってからでいいことだな。
474464
2012/05/02(水) 21:40:41.21 結局なにがしたいんだか分からないなー。
>>472
>まずlong intのサイズ毎にビット演算して0バイトがないか調べて(ちょっとトリッキー)、
>もしあったら詳細に調べるみたいな感じのことをしてる。
>インテルならXMMレジスタ(16バイト)を使うとさらに効果的。https://gist.github.com/77178
glibcのstrlen、すごいことしてるんですね。
特にビット演算のマジックナンバーが全然意味分かりませんでしたが、
説明をググったら解説があって、なんとなく分かったような気にはなりました。
なんすか、よく思いつくなと。
もう一個のアセンブラのほうは、
ニーモニックが全然分かってないので辛くて読んでませんが、
とにかく、案外、工夫のしがいがあるものなんですね。
>>472
>まずlong intのサイズ毎にビット演算して0バイトがないか調べて(ちょっとトリッキー)、
>もしあったら詳細に調べるみたいな感じのことをしてる。
>インテルならXMMレジスタ(16バイト)を使うとさらに効果的。https://gist.github.com/77178
glibcのstrlen、すごいことしてるんですね。
特にビット演算のマジックナンバーが全然意味分かりませんでしたが、
説明をググったら解説があって、なんとなく分かったような気にはなりました。
なんすか、よく思いつくなと。
もう一個のアセンブラのほうは、
ニーモニックが全然分かってないので辛くて読んでませんが、
とにかく、案外、工夫のしがいがあるものなんですね。
475デフォルトの名無しさん
2012/05/05(土) 16:38:05.82 非分岐時のみ投機実行のあるRISC系のCPUなら4行展開して意味ありそう。
けどCPUのアーキテクチャにベタベタに依存するコードだし、
遅延スロット埋める投機実行はもっと高度になってるから活躍の場は殆ど無いだろうね。
けどCPUのアーキテクチャにベタベタに依存するコードだし、
遅延スロット埋める投機実行はもっと高度になってるから活躍の場は殆ど無いだろうね。
476デフォルトの名無しさん
2012/06/01(金) 01:43:26.38 シェルスクリプトの質問なんですが、
いちいち別のサーバにログインしたりするのがめんどいので、
一つのシェルスクリプトで、
ローカルマシンとリモートマシンの実行結果を
マージしたりする仕組みって無いんですかね?
#!/bin/sh
num1=$HOME
num2=@$HOME<-例えば@の後ろに何か処理を書くとその処理は設定されたリモートで実行される
echo $num1<-ローカルの$HOME
echo $num2<-リモートの$HOME
いちいち別のサーバにログインしたりするのがめんどいので、
一つのシェルスクリプトで、
ローカルマシンとリモートマシンの実行結果を
マージしたりする仕組みって無いんですかね?
#!/bin/sh
num1=$HOME
num2=@$HOME<-例えば@の後ろに何か処理を書くとその処理は設定されたリモートで実行される
echo $num1<-ローカルの$HOME
echo $num2<-リモートの$HOME
477デフォルトの名無しさん
2012/06/01(金) 11:26:58.67 man rsh
man ssh
man ssh
478デフォルトの名無しさん
2012/06/27(水) 18:49:44.31 Linuxで、ライブラリとかにデバッグ用のシンボルが付いてるかどうかって
どうやったら調べられましたっけ。
どうやったら調べられましたっけ。
479デフォルトの名無しさん
2012/06/27(水) 19:36:48.08 fileコマンドでstrippedと出るか出ないか、かな?
480デフォルトの名無しさん
2012/06/27(水) 19:48:46.08 nm -a
481デフォルトの名無しさん
2012/06/30(土) 07:43:47.53 ncursesのC++実装について分かる方教えてください
482481
2012/06/30(土) 08:23:23.34 自己解決しました
483デフォルトの名無しさん
2012/07/01(日) 22:18:43.78 マルチバイト文字を出力する方法がわかったのですが、
複雑なので他の方の参考になるように
ここに書いておきます
/* 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;
}
複雑なので他の方の参考になるように
ここに書いておきます
/* 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 >>466
アセンブラに直せばわかるのに
アセンブラに直せばわかるのに
485デフォルトの名無しさん
2012/07/10(火) 18:27:57.31 >>483
これじゃ駄目なの?
$ cat test.c
#include <stdio.h>
int main() {
puts("あ");
return 0;
}
$ gcc -o test test.c
$ ./test
あ
これじゃ駄目なの?
$ 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 >>485
cursesでマルチバイト文字をどう扱うかって話だよ
cursesでマルチバイト文字をどう扱うかって話だよ
487デフォルトの名無しさん
2012/07/12(木) 01:18:29.66 素直にncurcesw使えばいいんでないかと思う
488デフォルトの名無しさん
2012/07/25(水) 21:25:11.82 >>484
UNIX界隈にもアセンブリをアセンブラ呼ばわりする人が居るんだな
UNIX界隈にもアセンブリをアセンブラ呼ばわりする人が居るんだな
489デフォルトの名無しさん
2012/07/25(水) 21:35:35.20 アセンブリ言語
490デフォルトの名無しさん
2012/07/28(土) 08:38:10.33 教えてください
静的ライブラリと、LD_PRELOADで指定された共有ライブラリでは、
静的ライブラリのほうが必ず先にロードされる、で正しいでしょうか?
静的ライブラリと、LD_PRELOADで指定された共有ライブラリでは、
静的ライブラリのほうが必ず先にロードされる、で正しいでしょうか?
491デフォルトの名無しさん
2012/07/28(土) 09:26:29.66 静的ライブラリは、実行形式ファイルの生成時にロードされ、リンクされる。
共有ライブラリは、実行形式ファイルの実行時にロードされ、リンクされる。
ということで、タイミングとしては静的ライブラリの方が時間的に早いので
その意味では正しいと思われます。
共有ライブラリは、実行形式ファイルの実行時にロードされ、リンクされる。
ということで、タイミングとしては静的ライブラリの方が時間的に早いので
その意味では正しいと思われます。
492デフォルトの名無しさん
2012/07/28(土) 10:10:31.58 LD_PRELOADで指定されてる方がタイミング的には先だな
493デフォルトの名無しさん
2012/07/28(土) 11:25:17.45 >>492
間違いです。
間違いです。
494デフォルトの名無しさん
2012/07/28(土) 11:31:01.01 くだらないこと気にしてないで重複しない命名規則をだな、
495デフォルトの名無しさん
2012/07/28(土) 11:35:58.83 デバッグ時に使いたいって話だよ
496デフォルトの名無しさん
2012/07/28(土) 11:37:06.57 >>494
経験浅い人は黙ってて
経験浅い人は黙ってて
497デフォルトの名無しさん
2012/08/02(木) 19:32:15.27 pidの分からない複数の子プロセスにシグナルを送る方法はありますか?
498デフォルトの名無しさん
2012/08/02(木) 21:30:52.30 >>497
kill()関数でpidにゼロや負数を入れるといいらしい
kill()関数でpidにゼロや負数を入れるといいらしい
499デフォルトの名無しさん
2012/08/02(木) 22:28:29.91 >>498
ありがとう,解決できました
ありがとう,解決できました
500デフォルトの名無しさん
2012/09/17(月) 22:19:03.43 http://www.cs.miyazaki-u.ac.jp/~date/lectures/image_process2012/labeling201209gp40_uc.c
画像処理ラベリングのプログラミングなんですがこの穴あきをおしえてください
ここで間はなにをするとこなのかおしえてくださいorz
画像処理ラベリングのプログラミングなんですがこの穴あきをおしえてください
ここで間はなにをするとこなのかおしえてくださいorz
501デフォルトの名無しさん
2012/09/17(月) 22:51:30.17 このプログラムを書いた人に訊きなさい
502デフォルトの名無しさん
2012/09/17(月) 23:28:29.51 馬鹿には聞いてません
503デフォルトの名無しさん
2012/09/18(火) 01:14:44.29504デフォルトの名無しさん
2012/09/18(火) 01:23:00.19 >>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");
}
のとこです
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 豚切りすいません。
超初心者です....
touchでファイル作ろうとしたらpermission denied ってなるんで
chmodでパーミッション変更しようとしてもどうやら元々の奴の権利を変えるだけのモノ?
みたいで、作成できるように権限を変えたいのですが、
どなたか教えてもらえるとありがだいです。
超初心者です....
touchでファイル作ろうとしたらpermission denied ってなるんで
chmodでパーミッション変更しようとしてもどうやら元々の奴の権利を変えるだけのモノ?
みたいで、作成できるように権限を変えたいのですが、
どなたか教えてもらえるとありがだいです。
506デフォルトの名無しさん
2012/09/20(木) 01:22:55.36 ディレクトリにchmod
あと.hogercの確認
あと.hogercの確認
507デフォルトの名無しさん
2012/09/20(木) 05:02:08.38 馬鹿には無理
508デフォルトの名無しさん
2012/09/21(金) 20:51:51.26 505です。
レスありがとうございます。
あれから chmod 777を打ったんですが
Unable to change file mode on
と出てきてしまいました。
レスありがとうございます。
あれから chmod 777を打ったんですが
Unable to change file mode on
と出てきてしまいました。
509505
2012/09/21(金) 22:01:57.26 何度もすいません。
ごめんなさいm(_ _)m
ディレクトリの権限がrootだったのでユーザーから作るのはやめて、
rootでファイルを作りました。
そのファイルというのは~.phpでして、それでhttp://localhost/~.phpをクリックしても
白紙でした。
どうすればPHPの情報が表示されるようになるのでしょうか⁇
ごめんなさいm(_ _)m
ディレクトリの権限がrootだったのでユーザーから作るのはやめて、
rootでファイルを作りました。
そのファイルというのは~.phpでして、それでhttp://localhost/~.phpをクリックしても
白紙でした。
どうすればPHPの情報が表示されるようになるのでしょうか⁇
510デフォルトの名無しさん
2012/09/21(金) 22:37:37.44 プログラミング以前に、操作がままならないんだから、
UNIX板orLinux板の初心者スレに行け。
UNIX板orLinux板の初心者スレに行け。
511デフォルトの名無しさん
2012/10/08(月) 16:57:39.28 オープンソースなLinuxって何でもかんでも無料で大丈夫なんだろうか
512デフォルトの名無しさん
2012/10/08(月) 18:47:25.65 だからGNUやFSFが共産主義的思想に基いているという噂が広まるんだよ
513デフォルトの名無しさん
2012/10/08(月) 19:31:21.24 板違いってことさえわからない頭で考えても無駄。
514デフォルトの名無しさん
2012/10/08(月) 20:09:56.73 >512
それは噂じゃなくて事実www
それは噂じゃなくて事実www
515デフォルトの名無しさん
2012/10/10(水) 14:24:45.90 ディレクトリストリームに関する質問です。
open関数にディレクトリのパスを入れると、ディレクトリストリームという
ものがオープンされると参考書に書かれています。
これは、open関数が"ハードディスク上"のディレクトリの中身の
ディレクトリやファイルの情報を"メモリ上"のstruct dirent構造体に
マップしていっていると考えていいのでしょうか?
あとreaddir関数に関する質問なのですが、この関数の引数のstruct dirent
型のポインタはreaddir関数で+1してから、このポインタに上書き(?)されて
ますか?それとも初めに引き渡されたポインタを保持してますか?
まだ勉強中なので的確な言葉選びができてなくて回りくどい言い回しに
なってそうですが教えてください。
open関数にディレクトリのパスを入れると、ディレクトリストリームという
ものがオープンされると参考書に書かれています。
これは、open関数が"ハードディスク上"のディレクトリの中身の
ディレクトリやファイルの情報を"メモリ上"のstruct dirent構造体に
マップしていっていると考えていいのでしょうか?
あとreaddir関数に関する質問なのですが、この関数の引数のstruct dirent
型のポインタはreaddir関数で+1してから、このポインタに上書き(?)されて
ますか?それとも初めに引き渡されたポインタを保持してますか?
まだ勉強中なので的確な言葉選びができてなくて回りくどい言い回しに
なってそうですが教えてください。
516デフォルトの名無しさん
2012/10/10(水) 15:07:31.31517デフォルトの名無しさん
2012/10/10(水) 15:36:47.63 >>516
すみません間違えました。
open関数じゃなくてopendir関数でした。。。
この辺の認識が正しいかどうかはヘッダファイル見ていけば
わかるんですかね?
ヘッダファイルなんて現時点のスキルで読み始めたら時間かかって
しょうがねえだろうなあと思ってるんですが。
すみません間違えました。
open関数じゃなくてopendir関数でした。。。
この辺の認識が正しいかどうかはヘッダファイル見ていけば
わかるんですかね?
ヘッダファイルなんて現時点のスキルで読み始めたら時間かかって
しょうがねえだろうなあと思ってるんですが。
518デフォルトの名無しさん
2012/10/10(水) 15:45:22.84 >>515
"opendir source code"でググって、ソース読め
"opendir source code"でググって、ソース読め
519デフォルトの名無しさん
2012/10/10(水) 15:46:09.33 >>517
システムコールの本を調べたら
システムコールの本を調べたら
520デフォルトの名無しさん
2012/10/10(水) 16:15:37.67521デフォルトの名無しさん
2012/10/10(水) 16:25:38.33 勉強中なら、ストリームという概念がわかったところで次に行った方が良いんじゃないかと思うけど
まぁ人それぞれだよね。
まぁ人それぞれだよね。
522デフォルトの名無しさん
2012/10/11(木) 00:06:26.42 scp 転送元ディレクトリ/*.* ./test
を実行したときカレントにtestというディレクトリが無いと
testというファイル名でファイルができてしまいます。
testディレクトリがなかったらエラーになるようにしたいのですが
どうしたらいいでしょうか?
を実行したときカレントにtestというディレクトリが無いと
testというファイル名でファイルができてしまいます。
testディレクトリがなかったらエラーになるようにしたいのですが
どうしたらいいでしょうか?
523デフォルトの名無しさん
2012/10/11(木) 00:11:06.80 >>522
そういうプログラムをつくればおk
そういうプログラムをつくればおk
524デフォルトの名無しさん
2012/10/11(木) 00:49:13.63 scp 転送元ディレクトリ/*.* ./test/
526デフォルトの名無しさん
2012/10/19(金) 07:30:16.88 openした際にメモリ上にマップされるFILE構造体のメンバに
ファイルディスクリプタがあると思うのですが、
同じファイルをopenするプロセスが複数あるとき、
それぞれのプロセス内のFILE構造体のメンバである
ファイルディスクリプタは異なる値で、実データへのポインタ
(inodeと対になっているメタデータ)は共有という理解で合ってますか?
ファイルディスクリプタがあると思うのですが、
同じファイルをopenするプロセスが複数あるとき、
それぞれのプロセス内のFILE構造体のメンバである
ファイルディスクリプタは異なる値で、実データへのポインタ
(inodeと対になっているメタデータ)は共有という理解で合ってますか?
527デフォルトの名無しさん
2012/10/20(土) 01:57:02.57 ファイルディスクリプタは、プロセスごとに定義されているので、
偶然同じ値であることがあります。
stdin, stdout, stderr以外にファイルはオープンしてない場合、
次にfopenしたファイルのファイルディスクリプタは3です。
要するにファイルディスクリプタは全プロセスにまたがった固有のIDと見做せません。
偶然同じ値であることがあります。
stdin, stdout, stderr以外にファイルはオープンしてない場合、
次にfopenしたファイルのファイルディスクリプタは3です。
要するにファイルディスクリプタは全プロセスにまたがった固有のIDと見做せません。
528デフォルトの名無しさん
2012/10/20(土) 06:15:36.17529デフォルトの名無しさん
2012/10/20(土) 07:26:12.03 >>528
君のレベルが分かりました
君のレベルが分かりました
530デフォルトの名無しさん
2012/10/21(日) 04:02:48.75 プログラムを走らせると、topで見るとsystem CPUの値が異常に高いのですが、
systemってどんなことをした場合に消費されるのでしょうか?
systemってどんなことをした場合に消費されるのでしょうか?
531デフォルトの名無しさん
2012/10/21(日) 07:06:44.21 ソウルからヨボセヨ 「ハングル輸出」は虚報 2012.10.20 03:01 [韓国]
韓国独自の文字であるハングルは民族的自慢のタネで、10月9日が「ハングルの日」として以前は祭日だった。
しかし祭日が多すぎると休日からははずされたため、復活を望む声が強い。
来年には復活の可能性があるとかで、カレンダー業者が気をもんでいる。
そのハングルをめぐってまずい話が起き問題になっている。
先年、インドネシアの小さな島の部族がハングルを自分たちの「公式文字」に採択したというニュースがあり
「ハングルの優秀性を世界に示した」として官民挙げて大喜びした。
教科書でも紹介されるまでになったのだが、最近、この話はマスコミが誇張したもので「公式文字採択」は虚報と分かった。
政府も教科書や各種展示を手直しすることになったという。
この少数部族というのはスラウェシ島に近いブトン島のチアチア族といい人口は6、7万人とか。
固有の部族語を話しているが、韓国の団体が援助を餌にその部族語の表記にハングルを使うことを勧めた。
その結果「公式文字に採択」となったというのだがインドネシアはローマ字が公用文字。地方の部族が別の文字を
公式文字に採択するのはありえない。
実際は単にハングルを学んでいるといった程度だったのだ。ハングル愛国主義の勇み足である。(黒田勝弘)
http://sankei.jp.msn.com/world/news/121020/kor12102003020000-n1.htm
韓国独自の文字であるハングルは民族的自慢のタネで、10月9日が「ハングルの日」として以前は祭日だった。
しかし祭日が多すぎると休日からははずされたため、復活を望む声が強い。
来年には復活の可能性があるとかで、カレンダー業者が気をもんでいる。
そのハングルをめぐってまずい話が起き問題になっている。
先年、インドネシアの小さな島の部族がハングルを自分たちの「公式文字」に採択したというニュースがあり
「ハングルの優秀性を世界に示した」として官民挙げて大喜びした。
教科書でも紹介されるまでになったのだが、最近、この話はマスコミが誇張したもので「公式文字採択」は虚報と分かった。
政府も教科書や各種展示を手直しすることになったという。
この少数部族というのはスラウェシ島に近いブトン島のチアチア族といい人口は6、7万人とか。
固有の部族語を話しているが、韓国の団体が援助を餌にその部族語の表記にハングルを使うことを勧めた。
その結果「公式文字に採択」となったというのだがインドネシアはローマ字が公用文字。地方の部族が別の文字を
公式文字に採択するのはありえない。
実際は単にハングルを学んでいるといった程度だったのだ。ハングル愛国主義の勇み足である。(黒田勝弘)
http://sankei.jp.msn.com/world/news/121020/kor12102003020000-n1.htm
532デフォルトの名無しさん
2012/10/21(日) 14:04:47.52 >>530
システムモードのCPU使用率が高いということは、つまりカーネルで動作していた時間が
多かったことを意味する。
例えば、ファイルのopen, closeを繰り返してファイルシステムやデバイスドライバばかり
動しているとか
システムモードのCPU使用率が高いということは、つまりカーネルで動作していた時間が
多かったことを意味する。
例えば、ファイルのopen, closeを繰り返してファイルシステムやデバイスドライバばかり
動しているとか
533デフォルトの名無しさん
2012/10/27(土) 22:06:34.21534デフォルトの名無しさん
2012/11/01(木) 00:23:16.28 >>530
メモリ足んなくて、メモリスワップしてるような状況でもsystemが上がりがちですかね。
メモリ足んなくて、メモリスワップしてるような状況でもsystemが上がりがちですかね。
535デフォルトの名無しさん
2012/11/01(木) 09:46:46.73 >>530
状況も説明せんと分かるわけがない
状況も説明せんと分かるわけがない
536デフォルトの名無しさん
2012/11/05(月) 01:34:52.74 思いつくのを適当に列挙すると
・ユーザーランドから無駄にシステムコール発行してる
・ドライバが腐ってる
・ハードが壊れてる
・アタックされてる
かねえ
・ユーザーランドから無駄にシステムコール発行してる
・ドライバが腐ってる
・ハードが壊れてる
・アタックされてる
かねえ
537デフォルトの名無しさん
2012/11/17(土) 19:30:00.85 教えてください
/proc以下の仮想ファイルと同様の仕組みを、自作アプリケーションの内部変数を
外から確認するのに使いたいのですが、それ用のAPIはありますか?
また、ターゲットに考えているアプリはパフォーマンスが非常に重要なのですが、
各種の高速ソフトウェアを動作させることが可能なOS自身が/proc以下を提供しているのだから、
そのような仕組みは処理のボトルネックにはならないだろうと期待しているのですが、どうですか?
/proc以下の仮想ファイルと同様の仕組みを、自作アプリケーションの内部変数を
外から確認するのに使いたいのですが、それ用のAPIはありますか?
また、ターゲットに考えているアプリはパフォーマンスが非常に重要なのですが、
各種の高速ソフトウェアを動作させることが可能なOS自身が/proc以下を提供しているのだから、
そのような仕組みは処理のボトルネックにはならないだろうと期待しているのですが、どうですか?
538デフォルトの名無しさん
2012/11/17(土) 19:37:46.89 text I/Oだから普通にボトルネックになりうる。
mmapを使ってください。
mmapを使ってください。
539デフォルトの名無しさん
2012/11/17(土) 19:49:57.94 >>538
ありがとうございます!
ありがとうございます!
540デフォルトの名無しさん
2012/11/17(土) 23:31:49.74 system()で生成した別プロセスに対してシグナルを送信する場合、典型的にはどれくらいの時間がかかりますか?
(人間の感覚では一瞬ですが、たとえ一瞬でも実際は有限の時間がかかりますよね?)
また、シグナルと同様にプロセス間で非同期の通知をするための高速な方法は他にありますか?
(人間の感覚では一瞬ですが、たとえ一瞬でも実際は有限の時間がかかりますよね?)
また、シグナルと同様にプロセス間で非同期の通知をするための高速な方法は他にありますか?
541デフォルトの名無しさん
2012/11/17(土) 23:45:34.34 シグナルはそんなに速くないよ。
特にシグナルハンドラー使う場合。
ハンドラはカーネル空間でなくてユーザ空間で実行しないといけないから。
システムコールにブロックされる可能性あるから、
シグナル割り込み可能性や再入可能性で調べてみて。
セマフォアやpthread_mutex(ただしプロセス間拡張あるUNIXで)使った方がいいよ。
特にシグナルハンドラー使う場合。
ハンドラはカーネル空間でなくてユーザ空間で実行しないといけないから。
システムコールにブロックされる可能性あるから、
シグナル割り込み可能性や再入可能性で調べてみて。
セマフォアやpthread_mutex(ただしプロセス間拡張あるUNIXで)使った方がいいよ。
542デフォルトの名無しさん
2012/11/18(日) 00:05:08.76543デフォルトの名無しさん
2012/11/18(日) 00:15:04.12 使うシステムコールやマルチスレッドかどうかによる。
ちなみにmsecレベルの応答性なら
高速性は必要とされてない応用にカテゴライズされると思う。
ちなみにmsecレベルの応答性なら
高速性は必要とされてない応用にカテゴライズされると思う。
544デフォルトの名無しさん
2012/11/18(日) 00:21:06.76 >>540
蒔きに火をつける時間と、のろしをあげる時間が必要
蒔きに火をつける時間と、のろしをあげる時間が必要
545デフォルトの名無しさん
2012/11/18(日) 00:26:16.02546デフォルトの名無しさん
2012/11/18(日) 00:28:46.80 マルチスレッドかどうかは、
中断可能じゃないシステムコールを呼んでいる時に
シグナル受けて処理に時間がかかるかどうかに関わってくる。
マルチスレッドなら、シグナル受けるの専用のスレッド置いておけば良い。
中断可能じゃないシステムコールを呼んでいる時に
シグナル受けて処理に時間がかかるかどうかに関わってくる。
マルチスレッドなら、シグナル受けるの専用のスレッド置いておけば良い。
547デフォルトの名無しさん
2012/11/18(日) 00:31:11.12548デフォルトの名無しさん
2012/11/18(日) 04:39:58.63549デフォルトの名無しさん
2012/11/18(日) 14:04:51.05 Intel Xeon Phiを扱えるコンパイラーを教えてちょ
550デフォルトの名無しさん
2012/11/18(日) 15:07:05.74 gcc
551デフォルトの名無しさん
2012/11/18(日) 21:02:49.61 素直にicc使えば?
552デフォルトの名無しさん
2012/11/19(月) 02:02:44.98553デフォルトの名無しさん
2012/12/07(金) 18:16:20.75 初心者なので間違っているかもしれませんが、
おそらくデータリンク層に関する質問です。
例えばプログラムでIPプロトコルを使って、
LAN内のサーバにデータを送るということをしようとする場合、
プログラムではIPヘッダに対応するstruct sockaddr構造体のメンバに
情報を与えるということしか行っていないと思うのですが、
Ethernetヘッダはプログラムを書いてコンパイラを通すと、
送信処理を行う時は NICを通してEEPROMからMACアドレスを読み込んで
それを送信バッファに 書き込むという処理がアセンブラコードに
書かれていると考えていいのでしょうか?
おそらくデータリンク層に関する質問です。
例えばプログラムでIPプロトコルを使って、
LAN内のサーバにデータを送るということをしようとする場合、
プログラムではIPヘッダに対応するstruct sockaddr構造体のメンバに
情報を与えるということしか行っていないと思うのですが、
Ethernetヘッダはプログラムを書いてコンパイラを通すと、
送信処理を行う時は NICを通してEEPROMからMACアドレスを読み込んで
それを送信バッファに 書き込むという処理がアセンブラコードに
書かれていると考えていいのでしょうか?
554デフォルトの名無しさん
2012/12/07(金) 18:23:54.52 なんでやねん。
555デフォルトの名無しさん
2012/12/07(金) 18:30:08.87 初心者とは謙虚な
556デフォルトの名無しさん
2012/12/07(金) 18:40:22.62 >>553
そう考えては駄目です。そうなっていませんから。
そう考えては駄目です。そうなっていませんから。
557デフォルトの名無しさん
2012/12/07(金) 18:47:57.21 >>558
UNIXプログラミングスレでの質問なのでUNIXでどうなっているかというと、
L3(IPパケット)ヘッダやL2(Ethernetパケット)ヘッダを作るのはOSカーネル内の
プロトコルスタックと呼ばれているモジュールが行う。
組み込みなどでキミが想像しているようなライブラリでの実装もあるかもしれない。
UNIXプログラミングスレでの質問なのでUNIXでどうなっているかというと、
L3(IPパケット)ヘッダやL2(Ethernetパケット)ヘッダを作るのはOSカーネル内の
プロトコルスタックと呼ばれているモジュールが行う。
組み込みなどでキミが想像しているようなライブラリでの実装もあるかもしれない。
558デフォルトの名無しさん
2012/12/07(金) 19:04:09.57 お、おれに言われても…
559デフォルトの名無しさん
2012/12/07(金) 20:26:33.52560デフォルトの名無しさん
2012/12/07(金) 20:53:34.27 >>553
やってて楽しいか?
やってて楽しいか?
561デフォルトの名無しさん
2012/12/07(金) 21:31:20.37 >>553
ネットワークすれで聞けば
ネットワークすれで聞けば
562デフォルトの名無しさん
2012/12/08(土) 07:25:35.96563デフォルトの名無しさん
2012/12/08(土) 09:53:49.69 プロトコルスタックを自前で書いてたら一生かかっても終わらねえよ。
564デフォルトの名無しさん
2013/06/20(木) 10:09:48.69 echo aaa > test.txt
のようなテキストファイルに文章を追記するコマンドの使い方がありますが
半角スペース入り半角記号入り改行入り半角英数字文字列をテキストファイルに追記もしくは新たにテキストファイルを作成する
コマンドはありますか?バッチファイルを作成したいのでviでテキストエディタを起動して作成等の方法は使えません。
のようなテキストファイルに文章を追記するコマンドの使い方がありますが
半角スペース入り半角記号入り改行入り半角英数字文字列をテキストファイルに追記もしくは新たにテキストファイルを作成する
コマンドはありますか?バッチファイルを作成したいのでviでテキストエディタを起動して作成等の方法は使えません。
565デフォルトの名無しさん
2013/06/20(木) 11:12:49.75 echo " aaa
aaa " > test.txt
とかでどう
aaa " > test.txt
とかでどう
566デフォルトの名無しさん
2013/06/20(木) 11:29:14.09 >>564
「bash ヒアドキュメント」でググれ
「bash ヒアドキュメント」でググれ
567デフォルトの名無しさん
2013/06/22(土) 22:29:05.19 Subversionをインストールしたマシンにコミットしたファイルの
ディレクトリってデフォルトだとどこにあるかわかりますか?
ディレクトリってデフォルトだとどこにあるかわかりますか?
568デフォルトの名無しさん
2013/06/22(土) 23:24:21.76 >>567
デフォルトというのは無いと思うよ。
デフォルトというのは無いと思うよ。
569デフォルトの名無しさん
2013/06/23(日) 02:19:26.06 >>564
echo -e "aaa\naaa"
echo -e "aaa\naaa"
570デフォルトの名無しさん
2013/06/23(日) 05:04:30.30 ヒアドキュメントってこういうやつね。
cat <<_END_ >test.txt
aaa
a a
_END_
cat <<_END_ >test.txt
aaa
a a
_END_
571デフォルトの名無しさん
2013/07/09(火) NY:AN:NY.AN Linux で、Objective-C 使えますか?
572デフォルトの名無しさん
2013/07/09(火) NY:AN:NY.AN573デフォルトの名無しさん
2013/10/23(水) 07:55:21.29 ハードリンクと違って、
シンボリックリンクはそれ自体がリンク情報を格納したファイルだとの事ですが
リンク情報ファイルとして直接見る(テキスト/バイナリエディタ)にはどのようにすればよいでしょうか?
シンボリックリンクはそれ自体がリンク情報を格納したファイルだとの事ですが
リンク情報ファイルとして直接見る(テキスト/バイナリエディタ)にはどのようにすればよいでしょうか?
574デフォルトの名無しさん
2013/10/23(水) 08:11:05.93 >>573
どのファイルシステムの話をしてんだよ。
どのファイルシステムの話をしてんだよ。
575デフォルトの名無しさん
2013/10/23(水) 09:04:19.27 環境は MacOS10.7 ファイルシステムは HFS+ ですが
ファイルシステムによって開き方が違うんですか?
ファイルシステムによって開き方が違うんですか?
576デフォルトの名無しさん
2013/10/23(水) 09:19:54.34 わかればよろしい
577デフォルトの名無しさん
2013/10/23(水) 10:02:16.47 >>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+はわかんないや。
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.92579デフォルトの名無しさん
2014/03/04(火) 10:40:27.75 あらら随分と寂れちゃって
やっぱUNIX系でプログラムミングしようなんてヴァカは少ないんだろうな
やっぱUNIX系でプログラムミングしようなんてヴァカは少ないんだろうな
580デフォルトの名無しさん
2014/03/04(火) 10:44:38.16 馬鹿には無理
581デフォルトの名無しさん
2014/03/04(火) 12:47:00.64 「やっぱUNIX系でプログラムミングしようなんてヴァカ」という奴はいない
582デフォルトの名無しさん
2014/03/04(火) 13:49:03.30 >>579
んじゃ何でプログラミングするんだよ?
んじゃ何でプログラミングするんだよ?
583デフォルトの名無しさん
2014/03/05(水) 00:05:19.95 >>579
馬鹿には無理
馬鹿には無理
584デフォルトの名無しさん
2014/03/05(水) 03:25:53.72 わかればよろしい
585デフォルトの名無しさん
2014/03/07(金) 22:08:54.91 ユニックスでプログラミングとか真性のオタクだろw
586デフォルトの名無しさん
2014/03/08(土) 13:19:20.76 >>585
馬鹿には無理
馬鹿には無理
587デフォルトの名無しさん
2014/03/08(土) 14:07:00.70 まあプログラミング作業そのものはwin 上でおこなうけどな
588デフォルトの名無しさん
2014/03/10(月) 03:07:52.96 プログラミングする奴はゴロゴロいるけどプログラムミングはそうそういないな
589デフォルトの名無しさん
2014/03/10(月) 11:58:20.45 プログラムミングだからか、そりゃMinGWでやってりゃいらつくかもしれん
590デフォルトの名無しさん
2014/03/12(水) 19:32:04.52ID:cq0Wuml2 Program MinG
591デフォルトの名無しさん
2014/04/04(金) 11:37:49.40ID:+1zjSCgd 私は主にLinux上で、C/C++のプログラミングをするんですが、
Linux の システムコールや標準ライブラリ関数が、
スレッドセーフかどうかが公式マニュアル等には、
まず記述されていないことが多いです。
スレッドセーフでない関数をスレッドから使うと
おかしな動きになるんですが、
スレッドセーフかどうかがハッキリ記述されている例の方が
少ないです。
みなさんはどうしてますか?
Linux の システムコールや標準ライブラリ関数が、
スレッドセーフかどうかが公式マニュアル等には、
まず記述されていないことが多いです。
スレッドセーフでない関数をスレッドから使うと
おかしな動きになるんですが、
スレッドセーフかどうかがハッキリ記述されている例の方が
少ないです。
みなさんはどうしてますか?
592デフォルトの名無しさん
2014/04/04(金) 11:56:16.78ID:5os8VUT8 man pthreads
593デフォルトの名無しさん
2014/04/07(月) 00:41:04.44ID:JdSV9wAR システムコールはされてるだろ。glibcも。
594デフォルトの名無しさん
2014/04/08(火) 18:36:01.77ID:nqRQMd5J 質問です。
ネットワーク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と説明されているのですが、
どちらでもいいのでしょうか?
よろしくお願いいたいします。
ネットワーク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.00ID:XsPn59mL ???
596デフォルトの名無しさん
2014/04/08(火) 19:30:25.89ID:pfMGzHK8 >>594
まじれすすると
しいて言えばaがaddress、nがnetworkじゃ?
inet_addrとinet_networkがあるしな。
aがasciiじゃ使える文字の種類が多すぎだろw
aとpは、とりあえず関数の対応範囲が違う。
しかし、これがUNIX固有の話だと思ってここに書き込んだとしたらそれは間違いw
まじれすすると
しいて言えばaがaddress、nがnetworkじゃ?
inet_addrとinet_networkがあるしな。
aがasciiじゃ使える文字の種類が多すぎだろw
aとpは、とりあえず関数の対応範囲が違う。
しかし、これがUNIX固有の話だと思ってここに書き込んだとしたらそれは間違いw
597デフォルトの名無しさん
2014/04/08(火) 19:37:10.16ID:kcd9laA9 >>596
一部の英語ページでasciiだと書かれている所があったのでasciiだと思いました。
>aとpは、とりあえず関数の対応範囲が違う。
kwsk
>しかし、これがUNIX固有の話だと思ってここに書き込んだとしたらそれは間違いw
と言ってもUNIX発祥ですよね?
一部の英語ページでasciiだと書かれている所があったのでasciiだと思いました。
>aとpは、とりあえず関数の対応範囲が違う。
kwsk
>しかし、これがUNIX固有の話だと思ってここに書き込んだとしたらそれは間違いw
と言ってもUNIX発祥ですよね?
598デフォルトの名無しさん
2014/04/08(火) 19:55:39.16ID:pfMGzHK8599デフォルトの名無しさん
2014/04/09(水) 01:22:41.83ID:rnlf/mPK >>579
会社を探しても見つからないのでPHPを覚えることにした
会社を探しても見つからないのでPHPを覚えることにした
600デフォルトの名無しさん
2014/04/09(水) 09:01:14.53ID:e48Xi3NQ601デフォルトの名無しさん
2014/04/09(水) 09:32:21.34ID:5VEJdG+v わからないなら黙ってろよ
602デフォルトの名無しさん
2014/04/09(水) 09:57:21.51ID:e48Xi3NQ 適当なこと書くなよ
603デフォルトの名無しさん
2014/04/09(水) 10:55:51.16ID:Lfy0Xgry webはNeXTSTEP上で開発されたからでしょ。
604デフォルトの名無しさん
2014/04/09(水) 10:59:29.84ID:3Xcjw1HB ソースは?
605デフォルトの名無しさん
2014/04/09(水) 11:10:06.95ID:Lfy0Xgry606デフォルトの名無しさん
2014/04/09(水) 11:28:38.99ID:3Xcjw1HB ブラウザーか
607デフォルトの名無しさん
2014/04/09(水) 11:30:48.25ID:3Xcjw1HB サーバもそうだね、ごめん
608デフォルトの名無しさん
2014/04/09(水) 11:53:40.04ID:LRWrSFoo609デフォルトの名無しさん
2014/04/09(水) 12:45:03.71ID:Lf5xDRrs cern httpdにNextSTEPのコードが残ってるのかな?調べる元気はないが
ttp://www.w3.org/Daemon/
ttp://www.w3.org/Daemon/
610デフォルトの名無しさん
2014/04/09(水) 14:05:10.90ID:Ih8FRvRW aはBSD socket こっちがオリジナル
pはPOSIX
POSIXがpに変えた理由は分からん。atoi何かと共通でいいのにな。
>>609
NeXTSTEPで開発したと言っても、BSDシステムとして使ってるだけ。
ところどころNeXT亜種としてのifdefがある程度。
waitかwait3かwaitpidかとか。
pはPOSIX
POSIXがpに変えた理由は分からん。atoi何かと共通でいいのにな。
>>609
NeXTSTEPで開発したと言っても、BSDシステムとして使ってるだけ。
ところどころNeXT亜種としてのifdefがある程度。
waitかwait3かwaitpidかとか。
611デフォルトの名無しさん
2014/04/09(水) 14:32:24.39ID:ZHBwUHYP >>610
なるほど
なるほど
612デフォルトの名無しさん
2014/04/09(水) 14:34:12.02ID:yn/sF65z613デフォルトの名無しさん
2014/04/09(水) 15:46:27.04ID:i8e/a0RW614デフォルトの名無しさん
2014/04/10(木) 13:11:17.94ID:XJwbthao615デフォルトの名無しさん
2014/04/10(木) 13:49:44.14ID:TvL1VyED616デフォルトの名無しさん
2014/04/10(木) 14:09:32.07ID:UW8P9M5z617デフォルトの名無しさん
2014/04/10(木) 14:50:52.67ID:J/8goZVV >ウェブの質問をする場合はNeXTか?
ウェブといえばブラウザーの話な、これまめな
ウェブといえばブラウザーの話な、これまめな
618デフォルトの名無しさん
2014/04/10(木) 14:56:00.17ID:XJwbthao つまらないボケのつもりなのか何なのか。
619デフォルトの名無しさん
2014/04/10(木) 14:57:31.49ID:FMX8fFXB つかタダでさえ人減ってるのにいがみ合ってどうすんだよ
620デフォルトの名無しさん
2014/04/10(木) 14:58:53.83ID:HaZcfplR >>612
使ってたよ。今のiOSのCocoa Touchにあたるものが既にあったからね。
当時大学でNeXTが使えたので一応リアルタイムで遊んだ。
しかし「所詮ハイパーテキストだろ」、と思った俺に先見の明はまるでなかった。
Gopherでエロ画像を配布・収集することに精を出していたのはいい思い出
その後NeXTからWebObjectが発表されて、ただの静的なハイパーテキストから
動的なWebアプリの概念が発展していった、と理解している。
使ってたよ。今のiOSのCocoa Touchにあたるものが既にあったからね。
当時大学でNeXTが使えたので一応リアルタイムで遊んだ。
しかし「所詮ハイパーテキストだろ」、と思った俺に先見の明はまるでなかった。
Gopherでエロ画像を配布・収集することに精を出していたのはいい思い出
その後NeXTからWebObjectが発表されて、ただの静的なハイパーテキストから
動的なWebアプリの概念が発展していった、と理解している。
621デフォルトの名無しさん
2014/04/10(木) 15:47:15.93ID:J/8goZVV Mosaicからしか知らん
tp://ftp.ncsa.uiuc.edu/Mosaic/
tp://ftp.ncsa.uiuc.edu/Mosaic/
622デフォルトの名無しさん
2014/04/10(木) 16:45:24.84ID:A86XAulB そういやarchieを最後に使ったのがいつだったか思い出せないや
623デフォルトの名無しさん
2014/04/10(木) 20:58:27.68ID:CGLbGtu7 どこまでタイムスリップしたらwwwの創始者になれるかな。
624デフォルトの名無しさん
2014/04/10(木) 21:29:38.26ID:12EYUgzM www
625デフォルトの名無しさん
2014/04/11(金) 09:27:55.52ID:I+yNGwZi626デフォルトの名無しさん
2014/04/11(金) 10:02:34.34ID:F9N8K0IN627デフォルトの名無しさん
2014/04/11(金) 11:53:48.19ID:nfBS813s 今どき、サーバプログラムを作るときはどうするのがいいのかな
規模が小さいからxinetdで済ませたいんだけどそれでもいいんだろうか
規模が小さいからxinetdで済ませたいんだけどそれでもいいんだろうか
628デフォルトの名無しさん
2014/04/11(金) 13:01:29.58ID:31jcxzSz >>627
デーモンにするか、xinetd にするかは、
クライアント側からのアクセス頻度で決めるべき問題でしょ。
アクセス頻度が十分に多ければデーモンにすべきだし、
少なければ xinetd, inetd の方がいい。
デーモンにするか、xinetd にするかは、
クライアント側からのアクセス頻度で決めるべき問題でしょ。
アクセス頻度が十分に多ければデーモンにすべきだし、
少なければ xinetd, inetd の方がいい。
629デフォルトの名無しさん
2014/04/11(金) 17:18:05.86ID:aluZjTib 一般的に使われるものならinetdがないMac OS Xの事も考えてやってね。
代わりにlaunchdというのがある。
代わりにlaunchdというのがある。
630デフォルトの名無しさん
2014/04/12(土) 11:46:22.55ID:0X1ZzDgt ありがとう
inetd系でいくわ
inetd系でいくわ
631デフォルトの名無しさん
2014/04/12(土) 15:25:30.45ID:hH6WyNhq http://2;ch.sc/
632デフォルトの名無しさん
2014/04/12(土) 15:56:33.94ID:EgrmLH2O ひろゆきの宣伝うぜー。
10年前にあめぞうを荒らして2chに誘導したのと全く同じことをまたやろうとしてやがる。
全く変わらずクズだな、ひろゆき。
10年前にあめぞうを荒らして2chに誘導したのと全く同じことをまたやろうとしてやがる。
全く変わらずクズだな、ひろゆき。
633デフォルトの名無しさん
2014/04/12(土) 16:01:24.03ID:UapBJj1i なるほどね
また鯖おちたね
また鯖おちたね
634デフォルトの名無しさん
2014/04/30(水) 14:41:44.67ID:XBNt2TTL ----foo.sh----
#!/bin/sh
if [ bool処理 ];then
exit 0
else
exit 1
fi
----foo.c----
return = system("foo.sh");
if(WEXITSTATUS(return)){
シェルスクリプトでexit 0の時の処理
}else{
シェルスクリプトでexit 1の時の処理
}
このようにシェルスクリプトの終了ステータスで条件分岐したいのですが
いつもtrueになってしまいます。
どのようにすればいいでしょうか?
よろしくお願いします。
% uname
FreeBSD
#!/bin/sh
if [ bool処理 ];then
exit 0
else
exit 1
fi
----foo.c----
return = system("foo.sh");
if(WEXITSTATUS(return)){
シェルスクリプトでexit 0の時の処理
}else{
シェルスクリプトでexit 1の時の処理
}
このようにシェルスクリプトの終了ステータスで条件分岐したいのですが
いつもtrueになってしまいます。
どのようにすればいいでしょうか?
よろしくお願いします。
% uname
FreeBSD
635デフォルトの名無しさん
2014/04/30(水) 15:45:33.66ID:BnmcVkVe returnは予約語
WEXITSTATUSが非ゼロの場合のコメントが「exit 0の時」
実際に問題となったコードで出し直し
WEXITSTATUSが非ゼロの場合のコメントが「exit 0の時」
実際に問題となったコードで出し直し
636デフォルトの名無しさん
2014/04/30(水) 15:55:27.10ID:23BUNUOn637デフォルトの名無しさん
2014/04/30(水) 16:47:23.85ID:+76j8OJU t
638デフォルトの名無しさん
2014/04/30(水) 18:11:15.11ID:ZY5HChQC 馬鹿には無理
639デフォルトの名無しさん
2014/05/06(火) 12:51:39.88ID:OFsDJUcu Cで、標準入力と標準出力をひとつにして標準入出力としたい。
640デフォルトの名無しさん
2014/05/06(火) 13:49:59.83ID:5cOP3XrV すれば
641デフォルトの名無しさん
2014/05/06(火) 13:52:48.20ID:OFsDJUcu642デフォルトの名無しさん
2014/05/06(火) 17:09:21.31ID:R4LFdeTL unix ではプロセス間に生成されるパイプは基本リードまたはライトの一方向として生成されるからね‥‥
ふつうのディスクリプタのように双方向にすればいいのだが
ふつうのディスクリプタのように双方向にすればいいのだが
643デフォルトの名無しさん
2014/05/06(火) 18:55:48.96ID:G4//2ydq >>641
こういうことをしたいの?
#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);
}
こういうことをしたいの?
#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);
}
644デフォルトの名無しさん
2014/05/06(火) 19:01:55.55ID:G4//2ydq fprintf, fscanf じゃなく printf, scanf の方がよかったか
645デフォルトの名無しさん
2014/05/10(土) 14:44:23.71ID:W8dcXoh3 >>641
stdoutをfcloseしてから、fileno(stdin)をfdopenすればいい。
ただそれをstdoutとして使うのは処理系依存になる。
マルチスレッド対応のライブラリはstdoutに代入できなくなってるから。
fdreopenがあればいいのだが。
stdoutをfcloseしてから、fileno(stdin)をfdopenすればいい。
ただそれをstdoutとして使うのは処理系依存になる。
マルチスレッド対応のライブラリはstdoutに代入できなくなってるから。
fdreopenがあればいいのだが。
646デフォルトの名無しさん
2014/05/10(土) 16:08:42.04ID:S6+Ypxbi どういう使い方を想定していますか?
647デフォルトの名無しさん
2014/05/10(土) 20:31:33.38ID:XNOk+z7r648デフォルトの名無しさん
2014/05/10(土) 23:10:22.73ID:eu6ll0of >>647
意味ねーよ、たぶん。
意味ねーよ、たぶん。
649デフォルトの名無しさん
2014/05/11(日) 02:09:06.14ID:8Qasa1hM xinetdなんか使うときにほしいな
650デフォルトの名無しさん
2014/05/12(月) 15:49:13.01ID:iANYuL+Z651デフォルトの名無しさん
2014/05/12(月) 16:42:43.61ID:7oRV1ywD >>650
fdopenでなんとかなるっけ?
fdopenでなんとかなるっけ?
652デフォルトの名無しさん
2014/05/30(金) 18:57:46.01ID:1vuEEnaV 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()に変更して追加した。
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()に変更して追加した。
653デフォルトの名無しさん
2014/05/30(金) 19:05:18.54ID:1vuEEnaV なお、diffのソース・フォルダで"Cannot" "allocate" "memory" と
いうキーワードを検索してみましたが、違うキーワードが含まれた
別の文字列の一部として存在しているだけでした。
「diff」という文字列を誰がどうやって表示しているのかさえ分かり
ません。__FILE__ マクロも検索してみましたが、見つかりません
でした。
いうキーワードを検索してみましたが、違うキーワードが含まれた
別の文字列の一部として存在しているだけでした。
「diff」という文字列を誰がどうやって表示しているのかさえ分かり
ません。__FILE__ マクロも検索してみましたが、見つかりません
でした。
654デフォルトの名無しさん
2014/05/30(金) 19:10:41.56ID:SSvUP3u/ argv[0]
655デフォルトの名無しさん
2014/05/30(金) 19:31:55.39ID:1vuEEnaV 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()
しかないようです。
これらの関数のうちどちらかが、メッセージを出しているのでしょうか?
{
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()
しかないようです。
これらの関数のうちどちらかが、メッセージを出しているのでしょうか?
656デフォルトの名無しさん
2014/05/30(金) 20:04:01.04ID:SSvUP3u/ 餅は餅屋
cygwinはcygwinから
cygwinはcygwinから
657デフォルトの名無しさん
2014/05/31(土) 07:45:18.26ID:6bjDZoIF 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"という文字列のバイト数の分のようです。
ところで、エラーの原因が判明しました。
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"という文字列のバイト数の分のようです。
658デフォルトの名無しさん
2014/05/31(土) 07:46:03.82ID:6bjDZoIF 【修正前】
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);
}
}
}
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);
}
}
}
659デフォルトの名無しさん
2014/05/31(土) 07:46:54.80ID:6bjDZoIF 【修正後】
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);
}
}
}
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);
}
}
}
660デフォルトの名無しさん
2014/05/31(土) 07:52:02.32ID:6bjDZoIF なお、エラー表示に「diff」が表示されているのは、argv[0]を使って
いるわけではなく、ライブラリの err() 関数が自分でやってるんですね。
av に argv が渡されているので混乱しそうですが、たまたまです。
いるわけではなく、ライブラリの err() 関数が自分でやってるんですね。
av に argv が渡されているので混乱しそうですが、たまたまです。
661デフォルトの名無しさん
2014/05/31(土) 10:56:57.68ID:DtdLdmhz ううむ。確かに試してみるとcygwinのargv[n]はバラバラなアドレスだな
662デフォルトの名無しさん
2014/05/31(土) 14:38:59.00ID:iRT5FyvM この糞なdiffのコードはargvがらみ以外にも地雷がたくさんありそう。
argvがらみでも/usr/bin/diffがargv[0]に渡されたらダメなんじゃないか?
4ってmagic numberが糞だから。
>>661
連続してることに依存したコードは糞。
argvがらみでも/usr/bin/diffがargv[0]に渡されたらダメなんじゃないか?
4ってmagic numberが糞だから。
>>661
連続してることに依存したコードは糞。
663デフォルトの名無しさん
2014/06/01(日) 00:52:00.45ID:MxSjB8Q5 >>662
なぜダメ?ソース見て言ってる?
なぜダメ?ソース見て言ってる?
664デフォルトの名無しさん
2014/06/01(日) 00:57:21.10ID:MxSjB8Q5 というか、これぐらいで糞糞って言ってるのは初心者なんだろうな
665デフォルトの名無しさん
2014/06/01(日) 02:19:51.86ID:e/SJ8pUJ666652
2014/06/01(日) 13:29:53.55ID:uUGuheMf OpenBSD の diff ソースは、本質的に複雑な処理の割にはソースが驚くほど
短いです。正直言って、腕のよさを感じました。ソースは:
diff.c 11KB
diffdir.c 7KB
diffreg.c 39KB
xmalloc.c 3KB
の4つしかソースが無く、本質的には、diffreg.c のみの 1522 行しか
ありません。こんなに簡潔に書ける人は、世界でも余りいないのではない
でしょうか?
ただし、
・複数の変数を同一行でカンマで区切って宣言している。
・ローカル変数の名称には1文字など、とても短い物が多い。
・if () で処理が一行の場合、ブロック {} にせずに書いてある。
・空行が少ない。
などの特徴があります。
短いです。正直言って、腕のよさを感じました。ソースは:
diff.c 11KB
diffdir.c 7KB
diffreg.c 39KB
xmalloc.c 3KB
の4つしかソースが無く、本質的には、diffreg.c のみの 1522 行しか
ありません。こんなに簡潔に書ける人は、世界でも余りいないのではない
でしょうか?
ただし、
・複数の変数を同一行でカンマで区切って宣言している。
・ローカル変数の名称には1文字など、とても短い物が多い。
・if () で処理が一行の場合、ブロック {} にせずに書いてある。
・空行が少ない。
などの特徴があります。
667デフォルトの名無しさん
2014/06/01(日) 15:42:24.51ID:fiMuA4/7668652
2014/06/01(日) 18:18:52.63ID:uUGuheMf このdiffに関して、プログラミング技術の秀逸さ以外にソースが
短い理由があるとする666に書いたことに加えて、
・getopt() を使ってオプションの処理が短く出来ている。
・pread() を使って、lseek(), read()に分けずに書けている。
・正規表現ライブラリを使っている。
・fnmatch()なるワイルドカード式のパターンマッチテストを
使っている。
もあるようです。
短い理由があるとする666に書いたことに加えて、
・getopt() を使ってオプションの処理が短く出来ている。
・pread() を使って、lseek(), read()に分けずに書けている。
・正規表現ライブラリを使っている。
・fnmatch()なるワイルドカード式のパターンマッチテストを
使っている。
もあるようです。
669652
2014/06/01(日) 18:20:16.83ID:uUGuheMf670652
2014/06/01(日) 18:38:13.52ID:uUGuheMf さらに:
・goto 文を使っている。
・goto 文を使っている。
671デフォルトの名無しさん
2014/06/03(火) 06:34:30.54ID:mwJyftym gotoは、finallyの代わりに、エラー処理で使う場合や、
2重ループを一気に抜け出す場合はOK
2重ループを一気に抜け出す場合はOK
672デフォルトの名無しさん
2014/08/05(火) 09:27:23.16ID:wh+qTY5L MonoBehaviourの読み方が気になってプログラミングに集中できません
どなたか教えて下さい!
どなたか教えて下さい!
673デフォルトの名無しさん
2014/08/05(火) 13:21:49.58ID:AfbB56Nf モゥノゥ・ビヘイヴュア
674デフォルトの名無しさん
2014/08/05(火) 13:24:41.41ID:AfbB56Nf 英和辞書の発音記号を見ればいいだろう
675デフォルトの名無しさん
2014/08/05(火) 13:37:09.15ID:v4Qe9qZY >>672
今頃気がついたが、
ここはUnixプログラミング質問スレであって
Unityプログラミング質問スレじゃねぇ!wwww
今頃気がついたが、
ここはUnixプログラミング質問スレであって
Unityプログラミング質問スレじゃねぇ!wwww
676デフォルトの名無しさん
2014/08/05(火) 17:46:28.53ID:X8aW0ARF 分かりづらいボケだな 嫌いじゃない
677デフォルトの名無しさん
2014/08/06(水) 22:36:42.77ID:ZYxq9t1Q /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文で存在確認するくらいしかないでしょうか?
があるときに以下のシェルを流すと
------------------------------
#!/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文で存在確認するくらいしかないでしょうか?
678デフォルトの名無しさん
2014/08/06(水) 23:31:46.47ID:XlJsEfbX コマンドライン展開じゃないから
for filepath in ${files}*${a}*
のin句にテキストとして ${files}*${a}* の結果として "/tmp/test/*20140806*"が展開されているだけじゃないの?
for filepath in ${files}*${a}*
のin句にテキストとして ${files}*${a}* の結果として "/tmp/test/*20140806*"が展開されているだけじゃないの?
679デフォルトの名無しさん
2014/08/06(水) 23:44:01.31ID:ZYxq9t1Q >>678
なるほど。コマンドライン展開したらできました。
ありがとうございます。
------------------------------
!/bin/sh
files="/tmp/test/"
for a in {20140801,20140806}
do
for filepath in `find ${files} -name ${a}*`
do
echo ${filepath}
done
done
------------------------------
なるほど。コマンドライン展開したらできました。
ありがとうございます。
------------------------------
!/bin/sh
files="/tmp/test/"
for a in {20140801,20140806}
do
for filepath in `find ${files} -name ${a}*`
do
echo ${filepath}
done
done
------------------------------
680デフォルトの名無しさん
2014/08/06(水) 23:47:40.87ID:JVlCh9Ly *は何もマッチしないときはそのまま*になる。
一般的には、確かに、ファイルの存在確認をするとかになるんじゃ。
シェルによっては*の挙動を変えられたはず。
一般的には、確かに、ファイルの存在確認をするとかになるんじゃ。
シェルによっては*の挙動を変えられたはず。
681デフォルトの名無しさん
2014/08/07(木) 00:09:15.66ID:mcWZAFW+682デフォルトの名無しさん
2014/08/07(木) 00:35:24.70ID:WSmP9CNZ 天才のみなさん教えてください。
「fork」した子プロセスで「popen」したのですが、「pclose」で終えると、「errno」に「29(ESPIPE)」が設定されていました。
以降の処理では前出のエラーによる影響は無く、正常に終了しているに見えるのですが、
子プロセスで「popen」は使用するべきではないのでしょうか?
ご教示お願いいたします。
「fork」した子プロセスで「popen」したのですが、「pclose」で終えると、「errno」に「29(ESPIPE)」が設定されていました。
以降の処理では前出のエラーによる影響は無く、正常に終了しているに見えるのですが、
子プロセスで「popen」は使用するべきではないのでしょうか?
ご教示お願いいたします。
683デフォルトの名無しさん
2014/08/07(木) 01:51:37.36ID:QaqdPvt4 error 29 espipe
ttp://docs.oracle.com/cd/E19455-01/806-2720/x-94fni/index.html
lseek(2)はパイプに対して使えないので、
一旦ファイルに書き込んでから、そのファイルに対して使う
ttp://docs.oracle.com/cd/E19455-01/806-2720/x-94fni/index.html
lseek(2)はパイプに対して使えないので、
一旦ファイルに書き込んでから、そのファイルに対して使う
684デフォルトの名無しさん
2014/08/07(木) 09:06:04.03ID:gf97lcsK685682
2014/08/07(木) 10:21:02.27ID:Nj16SWmn686デフォルトの名無しさん
2014/08/07(木) 11:01:30.95ID:56isn469 >>685
どちらも問題ない
どちらも問題ない
687682
2014/08/07(木) 11:58:56.21ID:Nj16SWmn >>686
ありがとうございました。
ありがとうございました。
688デフォルトの名無しさん
2014/08/07(木) 14:54:41.05ID:FIDAVWXd 恐ろしい罠だった
689デフォルトの名無しさん
2014/08/08(金) 00:48:08.28ID:W2uIddTc 正常終了した後に、errnoを見たの?
何じゃそれ!
何じゃそれ!
690デフォルトの名無しさん
2014/08/09(土) 11:23:56.87ID:B1dFLZrJ 正常終了したときもerrnoセットしろよ
何のためのE_OKだよ殺すぞクソが
と思ったことはあるのでバカにしたりしない。
何のためのE_OKだよ殺すぞクソが
と思ったことはあるのでバカにしたりしない。
691デフォルトの名無しさん
2014/08/09(土) 11:37:13.03ID:Mi20wbO0 どんなコード書いてるのかな?
692デフォルトの名無しさん
2014/08/12(火) 06:15:41.33ID:7nSDT24w try{
ここでエラーが発生した時のみ、errnoを設定し、catchへ飛ぶ
}catch{
ここでerrnoを参照
}
C++風に表現すれば、正常時にはerrnoは設定されていないし、
catchブロックも通らないから、errnoを参照できない
ここでエラーが発生した時のみ、errnoを設定し、catchへ飛ぶ
}catch{
ここでerrnoを参照
}
C++風に表現すれば、正常時にはerrnoは設定されていないし、
catchブロックも通らないから、errnoを参照できない
693デフォルトの名無しさん
2014/08/12(火) 17:15:08.49ID:hsJ6ic3B694デフォルトの名無しさん
2014/08/13(水) 10:46:20.48ID:03jARyf4 if(result==1)result=errno;
みたいに正規化してから処理るといいよ
みたいに正規化してから処理るといいよ
695デフォルトの名無しさん
2014/08/13(水) 10:49:25.22ID:03jARyf4 マイナス書き忘れた
まあいいや
まあいいや
696デフォルトの名無しさん
2014/08/20(水) 06:24:54.38ID:L79Zu2V+697デフォルトの名無しさん
2014/09/01(月) 11:59:31.72ID:5QQ1Caz+ Xlibについて質問します。
ウィンドウ・マネージャを使用する一般的な環境では、ウィンドウの淵をドラッグすると
ConfigureNotifyを受け取ることができます。
ところで、ドラッグの開始と終了を知ることができる通知は受けられますか?
Win32APIで言うところのWM_ENTERSIZEMOVEとWM_EXITSIZEMOVEに相当するものを
探しています。
あるいは何らかの方法で知ることは出来ますか?
よろしくおねがいします。
ウィンドウ・マネージャを使用する一般的な環境では、ウィンドウの淵をドラッグすると
ConfigureNotifyを受け取ることができます。
ところで、ドラッグの開始と終了を知ることができる通知は受けられますか?
Win32APIで言うところのWM_ENTERSIZEMOVEとWM_EXITSIZEMOVEに相当するものを
探しています。
あるいは何らかの方法で知ることは出来ますか?
よろしくおねがいします。
698デフォルトの名無しさん
2014/09/09(火) 23:38:03.45ID:/ZjY2rNK xlibにdragなんて高級なイベントはないです。
自分でdragと何であるか定義して、そのように自分で書いたコードで解釈してください。
自分でdragと何であるか定義して、そのように自分で書いたコードで解釈してください。
699デフォルトの名無しさん
2014/09/10(水) 21:03:14.76ID:zerYkwqt よく知らんけどDNDを使うらしい
もちろんツールキットならドラッグ&ドロップサポートしてる思うが
もちろんツールキットならドラッグ&ドロップサポートしてる思うが
700デフォルトの名無しさん
2014/12/23(火) 17:29:19.99ID:BQHHJ9UZ ところで、viってなんであんなに変態的な操作感なんでしょうか?
701デフォルトの名無しさん
2014/12/23(火) 18:48:55.43ID:g0vcdaad ところで、emacsってなんであんなに変態的な操作感なんでしょうか?
702デフォルトの名無しさん
2014/12/23(火) 18:52:34.58ID:SVPjuZy1 カスタムできるんだから、設定した、またはしてない自分が変態ってことだ。
703デフォルトの名無しさん
2014/12/23(火) 19:03:45.03ID:BQHHJ9UZ ただのカーソル移動のためにESCでコマンドモードに戻る必要がある点が
素晴らしく変態的だと感じるのですが、皆さんのご感想はいかがでしょうか?
素晴らしく変態的だと感じるのですが、皆さんのご感想はいかがでしょうか?
704デフォルトの名無しさん
2014/12/23(火) 19:06:48.73ID:BQHHJ9UZ 今、あらためてviをものすごく久しぶりに使ってみたのですが、
insertモードで普通にカーソルキーでカーソル移動できますねw
行追加や行削除もできちゃいます
これならいいっすw
勘違いだったのかなぁ。。前はもっと使いにくかった気がしたのですが。
insertモードで普通にカーソルキーでカーソル移動できますねw
行追加や行削除もできちゃいます
これならいいっすw
勘違いだったのかなぁ。。前はもっと使いにくかった気がしたのですが。
705デフォルトの名無しさん
2014/12/23(火) 19:15:34.69ID:1AeA5HA2706デフォルトの名無しさん
2014/12/23(火) 19:25:20.96ID:BQHHJ9UZ >>705
すみません、いちおうvimです
触ってみたのはVIM 7.3です
ちょっと懐かしくなっていろいろいじり始めたのですが、
Windows Tera termのssh経由だと、挙動が違って、insertモードで
カーソルキーが効かなかったり(AとかBとか入力される)
文字が消せなかったり
前経験したイケてない感じに似てます
すみません、いちおうvimです
触ってみたのはVIM 7.3です
ちょっと懐かしくなっていろいろいじり始めたのですが、
Windows Tera termのssh経由だと、挙動が違って、insertモードで
カーソルキーが効かなかったり(AとかBとか入力される)
文字が消せなかったり
前経験したイケてない感じに似てます
707デフォルトの名無しさん
2014/12/23(火) 22:25:53.16ID:u51zFo5t >>706 ひょっとすると :set nocompatible でなおったりしませんか(自信ないけど)?
// ノーマルモードに戻ったほうが単語単位とかいろんな動き方ができて結局有利
// ノーマルモードに戻ったほうが単語単位とかいろんな動き方ができて結局有利
708デフォルトの名無しさん
2014/12/23(火) 22:34:24.66ID:BQHHJ9UZ709デフォルトの名無しさん
2014/12/23(火) 22:39:03.14ID:BQHHJ9UZ710デフォルトの名無しさん
2014/12/24(水) 11:12:32.34ID:Mlxryodi >>708-709 おおそれはなによりです。vimrc 作っとくとそれだけで自動的に nocompatible になるので便利
ハッピークリスマス!
ハッピークリスマス!
711デフォルトの名無しさん
2015/02/04(水) 04:25:26.78ID:2A4M88bu 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;
}
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;
}
712711
2015/02/04(水) 04:26:55.16ID:2A4M88bu (承前)
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のバグでしょうか?
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のバグでしょうか?
713デフォルトの名無しさん
2015/02/04(水) 09:47:00.99ID:mVJhw09N 仕様ですbyステーブンス
714デフォルトの名無しさん
2015/02/04(水) 11:48:47.58ID:kErMECZ6 杜撰です
に見えた
に見えた
715デフォルトの名無しさん
2015/02/04(水) 13:52:16.28ID:5pZRcUKP >>712
拝承です
拝承です
716デフォルトの名無しさん
2015/02/07(土) 12:58:19.68ID:quWAAr+b 日立社員乙
717デフォルトの名無しさん
2015/03/04(水) 20:53:07.73ID:9LdtcOdt カレントディレクトリに hoge, text のディレクトリがあって
サブディレクトリも含めて hoge の中にある拡張子 .txt ファイルを text に移動させるシェルスクリプトはどう書くのでしょうか?
サブディレクトリも含めて hoge の中にある拡張子 .txt ファイルを text に移動させるシェルスクリプトはどう書くのでしょうか?
718デフォルトの名無しさん
2015/03/04(水) 21:51:25.04ID:XBVr1uxu720デフォルトの名無しさん
2015/04/29(水) 20:52:13.95ID:1t7Idot8 Cのソケットって皆さん暗記してますか?
それともマニュアル見ながらですか?
それともマニュアル見ながらですか?
721デフォルトの名無しさん
2015/04/29(水) 22:53:40.05ID:NGuLNLKb722デフォルトの名無しさん
2015/04/30(木) 04:30:00.02ID:zG7Mey9s723片山博文MZ ◆T6xkBnTXz7B0
2015/06/25(木) 18:04:11.58ID:L8cWAkwK Linuxプログラミング初心者の片山博文MZです。X11のことですが、
XImageとPixmapの使い分けがわかりません。なぜ2つあるのでしょう。
XImageとPixmapの使い分けがわかりません。なぜ2つあるのでしょう。
724デフォルトの名無しさん
2015/06/25(木) 18:50:05.13ID:5PWcDoqN C/SのCにあるかSにあるかが違うみたいですが。
昔は大きな違いだったんじゃないでしょうか。
昔は大きな違いだったんじゃないでしょうか。
725片山博文MZ ◆T6xkBnTXz7B0
2015/07/05(日) 11:04:38.55ID:w9v3Eza+ XImageはクライアントらしいね。
Ubuntuのapt-getは、死んでんのか?
Xlibがインストールできない。。。
Ubuntuのapt-getは、死んでんのか?
Xlibがインストールできない。。。
726片山博文MZ ◆T6xkBnTXz7B0
2015/07/05(日) 11:15:36.41ID:w9v3Eza+ サポートが切れてた。また、インストールやり直しか。。。
http://www.ubuntulinux.jp/ubuntu
http://www.ubuntulinux.jp/ubuntu
727片山博文MZ ◆T6xkBnTXz7B0
2015/07/12(日) 22:29:58.75ID:KwHbB7ws X11プログラミング始めました。
728デフォルトの名無しさん
2015/07/13(月) 07:57:19.32ID:iSxMMSf8 日記はブログかツイッターで
729デフォルトの名無しさん
2015/07/13(月) 08:22:17.26ID:JZVSQPVK かたやま君って何歳?
もしかして50台?
QZさんと同じ人?
もしかして50台?
QZさんと同じ人?
730デフォルトの名無しさん
2015/07/13(月) 10:01:58.81ID:eqkpY97O 「体液取引所」は、体液を取引できるサービスです。
ttp://katahiromz.esy.es/taieki/
ttp://katahiromz.esy.es/taieki/
731デフォルトの名無しさん
2015/07/13(月) 10:41:27.79ID:ehCb8x0b 今の時代に生X11のプログラミング?
そんなわけないから新しいフレームワーク作るのかな?
それともネット越しでも使えるってのを前提に何か考えてるのかな?
そんなわけないから新しいフレームワーク作るのかな?
それともネット越しでも使えるってのを前提に何か考えてるのかな?
732デフォルトの名無しさん
2015/07/13(月) 11:24:12.72ID:+NoacgtO 21世紀版X11toolkit
http://katahiromz.web.fc2.com/xtk/
http://katahiromz.web.fc2.com/xtk/
733片山博文MZ ◆T6xkBnTXz7B0
2015/07/13(月) 21:21:53.11ID:VD4KavgG まず最初にXサーバーに接続するためにXOpenDisplayする。最後にXCloseDisplayする。
Display *dpy = XOpenDisplay(NULL);
...
XCloseDisplay(dpy);
DefaultRootWindow(dpy)でルートウィンドウが取得できる。
WindowもPixmapも描画可能なDrawableである。
Display *dpy = XOpenDisplay(NULL);
...
XCloseDisplay(dpy);
DefaultRootWindow(dpy)でルートウィンドウが取得できる。
WindowもPixmapも描画可能なDrawableである。
734デフォルトの名無しさん
2015/07/13(月) 21:23:12.79ID:RYeBYa4U 馬鹿か
735片山博文MZ ◆T6xkBnTXz7B0
2015/07/13(月) 22:19:12.31ID:VD4KavgG 標準のXImageは自由すぎて扱いづらい。いちいち確認に時間が掛かりそう
736片山博文MZ ◆T6xkBnTXz7B0
2015/07/13(月) 22:31:16.38ID:VD4KavgG 今、画像処理ライブラリー「imaio」の移植をしようとしている。GTKじゃなくて生のX11じゃないといけないんだ。
738片山博文MZ ◆T6xkBnTXz7B0
2015/07/14(火) 16:26:21.63ID:2KYZ+h7+ X11とWin32ではイベント駆動モデルが異なるので、X11アプリをWin32アプリに変換するためには、
その相違点を吸収する必要がある。Win32ではウィンドウプロシージャーがあるが、X11にはない。
その相違点を吸収する必要がある。Win32ではウィンドウプロシージャーがあるが、X11にはない。
739デフォルトの名無しさん
2015/07/14(火) 17:13:59.78ID:zEVZr7+g 変態馬鹿アゲ
740片山博文MZ ◆T6xkBnTXz7B0
2015/07/15(水) 20:18:59.14ID:OqXQaHQl plain X11の主要なアプリはWin32への移植がほとんど完了している。
xeyes,xlogo,xclock,xcalc,tgif,gnuplot,xdvi,xgraph,xfig,xv,kterm。
Cygwin経由による移植、独自パッチによる移植、1からの作り直しなど。
しかし移植に労力が掛かることから、「アプリの変換」を可能にすることが望ましい。
xeyes,xlogo,xclock,xcalc,tgif,gnuplot,xdvi,xgraph,xfig,xv,kterm。
Cygwin経由による移植、独自パッチによる移植、1からの作り直しなど。
しかし移植に労力が掛かることから、「アプリの変換」を可能にすることが望ましい。
741片山博文MZ ◆T6xkBnTXz7B0
2015/07/17(金) 18:18:50.94ID:Ifv8D+/7 古いソースは、真っ黒ウィンドウを表示するだけで正しく動かないな。
イベントを正しく処理しないと。
イベントを正しく処理しないと。
742片山博文MZ ◆T6xkBnTXz7B0
2015/07/17(金) 19:01:57.98ID:Ifv8D+/7 X11は、const付いてないのが当たり前なのか。。。古いシステムだからか
743デフォルトの名無しさん
2015/07/17(金) 19:12:57.88ID:8d86NFzu 自分のブログでやれよ
744片山博文MZ ◆T6xkBnTXz7B0
2015/07/27(月) 21:59:30.83ID:reKlkB8o X11でカラーピックスマップをマスクする方法を知ってる人は居ませんか?
745デフォルトの名無しさん
2015/07/27(月) 22:13:52.80ID:pfFqoABP いません
746デフォルトの名無しさん
2015/07/27(月) 22:55:54.80ID:gBgTtjsa 今N88BASICをUNIXに移植しています
747片山博文MZ ◆T6xkBnTXz7B0
2015/07/28(火) 01:43:39.81ID:92wk7rzR 画像を加工したいなら、PixmapよりもXImage*を使えってさ。
748片山博文MZ ◆T6xkBnTXz7B0
2015/07/30(木) 21:54:44.71ID:TR4DZa+X XPutImageとGCのクリップマスクを使えば、カラーイメージのマスクが可能みたいだ。
man XCreateImageとman XPutImageを翻訳して分かった。
man XCreateImageとman XPutImageを翻訳して分かった。
749デフォルトの名無しさん
2015/07/30(木) 22:31:43.56ID:VILxsCQc 馬鹿w
750片山博文MZ ◆T6xkBnTXz7B0
2015/07/31(金) 15:58:47.36ID:VnmYQE5l X11では、アルファブレンドはサポート外だって。
http://stackoverflow.com/questions/27551841/32bit-ximage-xputimage-and-alpha-blending
http://stackoverflow.com/questions/27551841/32bit-ximage-xputimage-and-alpha-blending
751片山博文MZ ◆T6xkBnTXz7B0
2015/08/03(月) 17:38:00.26ID:/P0N0OgP TypicalX11App --- a template project of X11 application
https://github.com/katahiromz/TypicalX11App
よろしくね!!!
https://github.com/katahiromz/TypicalX11App
よろしくね!!!
752デフォルトの名無しさん
2015/08/03(月) 18:24:17.26ID:m4wBjZ5s MZおじちゃんなんでSchemeじゃないのん?
753片山博文MZ ◆T6xkBnTXz7B0
2015/08/03(月) 18:49:32.18ID:w+TrXeLA LispはGUIが面倒だから、おじいちゃんは使いたくないんだ。
次に言語を覚えるとしたらO'Camlだろうね。
次に言語を覚えるとしたらO'Camlだろうね。
754デフォルトの名無しさん
2015/08/03(月) 19:15:13.79ID:m4wBjZ5s >>753
ML系っすかー、浮動小数点演算子が別なのが書きにくいっすー
Elixirとかどっすか?(板にスレたってるけど盛り上がりがいまいちなのがなっとく行かないっす)
ぼかぁ今Elixir一押しっす(以前はClojualianでしたぁ)
ML系っすかー、浮動小数点演算子が別なのが書きにくいっすー
Elixirとかどっすか?(板にスレたってるけど盛り上がりがいまいちなのがなっとく行かないっす)
ぼかぁ今Elixir一押しっす(以前はClojualianでしたぁ)
755片山博文MZ ◆T6xkBnTXz7B0
2015/08/03(月) 23:55:01.88ID:w+TrXeLA Xpmカラーアイコンの設定がよくわからない
756デフォルトの名無しさん
2015/08/04(火) 00:02:40.84ID:VOYl2fqg >>755
自己解決。XSetStandardProperties
自己解決。XSetStandardProperties
757片山博文MZ ◆T6xkBnTXz7B0
2015/08/04(火) 00:44:42.97ID:VOYl2fqg あるスクリプトを実行する前に管理者権限を要求するようにするにはどうすればいい?
758デフォルトの名無しさん
2015/08/04(火) 08:59:04.80ID:J7GbkFVu chmod 4755
759デフォルトの名無しさん
2015/08/04(火) 09:32:49.49ID:U7jxEvNW rm -irf /
760片山博文MZ ◆T6xkBnTXz7B0
2015/08/04(火) 23:48:05.90ID:VOYl2fqg どうやったら音が出るんだ?
761デフォルトの名無しさん
2015/08/05(水) 23:03:50.84ID:L7EpLchZ762片山博文MZ ◆T6xkBnTXz7B0
2015/08/06(木) 16:09:45.02ID:4xD13DN7 GIMPだと半透明なXPM画像が作れないみたいだが、いい方法ないだろうか?
763デフォルトの名無しさん
2015/08/06(木) 16:21:28.28ID:UWsxl2Wn 豆腐の角に頭をぶつける
764片山博文MZ ◆T6xkBnTXz7B0
2015/08/06(木) 17:12:21.47ID:4xD13DN7 それじゃ何で他のアプリのアイコンは、背景が透明になってるんだろう?
―――謎が謎を呼ぶミステリーの巨匠・ベストセラー作家
―――謎が謎を呼ぶミステリーの巨匠・ベストセラー作家
765デフォルトの名無しさん
2015/08/06(木) 17:57:25.44ID:0X10zjbP >>762
XPM自体Alpha扱えないじゃんよ
XPM自体Alpha扱えないじゃんよ
766片山博文MZ ◆T6xkBnTXz7B0
2015/08/06(木) 18:19:15.68ID:4xD13DN7 分かった! XSetWMHintsでマスクを指定できる!!!
767片山博文MZ ◆T6xkBnTXz7B0
2015/08/07(金) 21:46:14.00ID:UeH7dSGn モノクロからモノクロへのビット転送のXCopyPlaneがBadMatchで失敗する。
助けて下され。
助けて下され。
768デフォルトの名無しさん
2015/08/07(金) 21:48:21.58ID:UeH7dSGn あげあげ
769片山博文MZ ◆T6xkBnTXz7B0
2015/08/07(金) 23:01:54.51ID:UeH7dSGn 深さは同じなのに何で失敗するのだろうか? 私の灰色の脳髄に問いかけても答えは
返ってこないのであった。
返ってこないのであった。
770デフォルトの名無しさん
2015/08/07(金) 23:29:02.86ID:cpqq9JlN 馬糞に頭をぶつける
771デフォルトの名無しさん
2015/08/08(土) 02:11:57.62ID:hvTU1eUO >>770
EDFの勇猛さを見せてやれ!
EDFの勇猛さを見せてやれ!
772デフォルトの名無しさん
2015/08/08(土) 02:25:39.01ID:kkkSL9bh 緑の地球があぶないぞー♪
#ヨドバシのCMがこれになってしまう
#ヨドバシのCMがこれになってしまう
773片山博文MZ ◆T6xkBnTXz7B0
2015/08/08(土) 15:27:35.91ID:mgSCA6PB depthが違うと描画できない。
だからDefaultDepthで描画してXImageに流し込み、
XYBitmapに手動で変換。
これでOK?
だからDefaultDepthで描画してXImageに流し込み、
XYBitmapに手動で変換。
これでOK?
774デフォルトの名無しさん
2015/08/08(土) 15:35:34.62ID:Uc25d9Au775片山博文MZ ◆T6xkBnTXz7B0
2015/08/08(土) 18:09:39.54ID:mgSCA6PB 自己解決しました
776片山博文MZ ◆T6xkBnTXz7B0
2015/08/19(水) 23:07:11.24ID:ynuNSl9L 引き続きBASICの開発をしています。
X11プログラミングで「かな」キーを使いたくて、
そのウィンドウでは邪魔な日本語入力システムを無効にしたい
んだけど、どうすればええんや?
X11プログラミングで「かな」キーを使いたくて、
そのウィンドウでは邪魔な日本語入力システムを無効にしたい
んだけど、どうすればええんや?
777片山博文MZ ◆T6xkBnTXz7B0
2015/08/20(木) 15:18:27.94ID:522SpRvB 自己解決しました。
XIM xim = XOpenIM(m_disp, NULL, NULL, NULL);
XIC xic = XCreateIC(xim,
XNInputStyle, XIMPreeditNothing | XIMStatusNone,
XNClientWindow, m_win,
XNFocusWindow, m_win,
NULL);
XIM xim = XOpenIM(m_disp, NULL, NULL, NULL);
XIC xic = XCreateIC(xim,
XNInputStyle, XIMPreeditNothing | XIMStatusNone,
XNClientWindow, m_win,
XNFocusWindow, m_win,
NULL);
778デフォルトの名無しさん
2015/08/20(木) 18:00:33.04ID:LiIz1jSH 誘導
ttp://katahiromz.web.fc2.com/
ttp://katahiromz.web.fc2.com/
779デフォルトの名無しさん
2015/08/20(木) 18:22:39.10ID:BI1Ot8hx >>778
自宅案内してどうすんだよwww
自宅案内してどうすんだよwww
780デフォルトの名無しさん
2015/09/07(月) 23:43:54.86ID:oEsRUnbq ttps://youtu.be/LyY1SWR-qdk
こういったツールというかブラウザを作りたいのですが
プログラミング言語はどのようなものを学べば良いのでしょうか
とりあえず「プログラミング 質問」
で辿り着いたこのスレで質問させてもらいますが、場違いなら申し訳ないです。。
もし可能なら誘導願います。
こういったツールというかブラウザを作りたいのですが
プログラミング言語はどのようなものを学べば良いのでしょうか
とりあえず「プログラミング 質問」
で辿り着いたこのスレで質問させてもらいますが、場違いなら申し訳ないです。。
もし可能なら誘導願います。
781デフォルトの名無しさん
2015/09/08(火) 00:15:27.57ID:AqjnEPGq >>780
CでもC++でもPascalでもJavaでもご自由にどうぞ。
CでもC++でもPascalでもJavaでもご自由にどうぞ。
782デフォルトの名無しさん
2015/09/09(水) 22:22:35.91ID:uRg9+L4g >>781
どんな感じで勉強すればいいんですかね、とりあえず参考書や参考になるページ等あれば知りたいです。
どんな感じで勉強すればいいんですかね、とりあえず参考書や参考になるページ等あれば知りたいです。
783デフォルトの名無しさん
2015/09/09(水) 23:15:34.20ID:pORKeFgH >>782
個別の事をそれぞれ探せばいいだけじゃないの?
とりあえず何かの言語そのものについてよく知ること(どれでもいい)
その言語で目標に必要なことを一つずつ調べる
ってだけなんだよ
生のCだろうがC++だろうが、JVM上の言語だろうが、LL系言語だろうが手順は変わらないよ
個別の事をそれぞれ探せばいいだけじゃないの?
とりあえず何かの言語そのものについてよく知ること(どれでもいい)
その言語で目標に必要なことを一つずつ調べる
ってだけなんだよ
生のCだろうがC++だろうが、JVM上の言語だろうが、LL系言語だろうが手順は変わらないよ
784デフォルトの名無しさん
2015/09/10(木) 01:28:54.48ID:VfgrnjcJ785デフォルトの名無しさん
2015/09/27(日) 02:49:33.29ID:2d7NuPfA ソケットについておしえてください
いつくつかwebサイトや本を読みましたが
struct sockaddr_in には長さがあるものないもの、
ポートがunsigned shortのものin_port_tのもの
など様々な相違があるようです
私のシステムFreeBSD9.3-i386ではsin_lenが存在しin_port_t型でsin_portが定義されています
なぜ違いあるのかまた各システムにどのような違いがあるのか教えてください
または参考となるwebサイトなどがあればお願いします
いつくつかwebサイトや本を読みましたが
struct sockaddr_in には長さがあるものないもの、
ポートがunsigned shortのものin_port_tのもの
など様々な相違があるようです
私のシステムFreeBSD9.3-i386ではsin_lenが存在しin_port_t型でsin_portが定義されています
なぜ違いあるのかまた各システムにどのような違いがあるのか教えてください
または参考となるwebサイトなどがあればお願いします
786デフォルトの名無しさん
2015/09/27(日) 03:12:43.04ID:Aie1F5/k 32/64bitなど、様々なシステムもあるし、
プログラマーも様々
どのように構造体を作るのも自由だから、
各プログラマーが独自に作っているのだろう
ライブラリの内部で、どういう構造体を使おうと、
最終的には、イーサネットの仕様書に合わせて、
パケットは作られる
プログラマーも様々
どのように構造体を作るのも自由だから、
各プログラマーが独自に作っているのだろう
ライブラリの内部で、どういう構造体を使おうと、
最終的には、イーサネットの仕様書に合わせて、
パケットは作られる
787デフォルトの名無しさん
2015/10/12(月) 15:48:40.51ID:pxYHqVTj コマンドラインインタフェースの実装でCISCOルータのCLIのようにタブキーを押すと候補が出るような実装をしたいのですが
どうやればいいのでしょうか?
参考になるサイト等あれば教えて下さい。
どうやればいいのでしょうか?
参考になるサイト等あれば教えて下さい。
788デフォルトの名無しさん
2015/10/12(月) 16:28:01.67ID:AfVSnc2r Do you know ggrks?
789デフォルトの名無しさん
2015/10/12(月) 23:48:17.10ID:SJaaQaP/790デフォルトの名無しさん
2015/10/13(火) 00:39:48.59ID:/HfCo80J >>787
タブキーだったら候補を出せばいいんじゃないの?
タブキーだったら候補を出せばいいんじゃないの?
791デフォルトの名無しさん
2015/10/13(火) 07:01:55.87ID:wS7dKnQY792デフォルトの名無しさん
2015/10/13(火) 11:01:34.42ID:8m7sAafc >>789
オートコンプリート、自動補完
オートコンプリート、自動補完
793デフォルトの名無しさん
2015/10/13(火) 23:11:55.66ID:3mL35rpK >>787
readline じゃいかんの?
readline じゃいかんの?
794デフォルトの名無しさん
2015/10/13(火) 23:44:53.00ID:bkkKySdk だね、bashもこれ使ってんだろ
795デフォルトの名無しさん
2015/10/14(水) 06:53:30.98ID:2ChufbG/ >>792
それじゃでてこない
それじゃでてこない
796デフォルトの名無しさん
2015/10/14(水) 07:56:05.77ID:AV8Y6RLf UNIXのコマンドラインプログラムはデフォルトではキーボードの押下をユーザープログラムが直接受け取ることが出来ない
キーボードの押下はカーネル側でキャッチされ、カーネルにより画面にエコーバックされ、カーネル側の入力のバッファに溜まる
改行に相当するキーが押されてはじめてバッファに溜まっていた入力がまとめてユーザプログラムに渡される
タブキーを押して候補を表示するようなプログラムは、上記デフォルトモードを別のモードへ変更する必要がある
これにはたぶんtermios(3)とかで参照できるカーネルAPIを使う必要がある
古いUNIXでは入力に対するioctl(2)を直接使うことが多かった
でもreadlineみたいなライブラリを使うほうが簡単だろうな
キーボードの押下はカーネル側でキャッチされ、カーネルにより画面にエコーバックされ、カーネル側の入力のバッファに溜まる
改行に相当するキーが押されてはじめてバッファに溜まっていた入力がまとめてユーザプログラムに渡される
タブキーを押して候補を表示するようなプログラムは、上記デフォルトモードを別のモードへ変更する必要がある
これにはたぶんtermios(3)とかで参照できるカーネルAPIを使う必要がある
古いUNIXでは入力に対するioctl(2)を直接使うことが多かった
でもreadlineみたいなライブラリを使うほうが簡単だろうな
797デフォルトの名無しさん
2015/10/14(水) 10:17:04.26ID:sQV3pFxD >>795
馬鹿には無理、諦めるが肝心
馬鹿には無理、諦めるが肝心
798デフォルトの名無しさん
2015/10/14(水) 11:30:43.18ID:EGTHNy+H rlwrapでよくね
799デフォルトの名無しさん
2015/10/14(水) 14:39:53.65ID:NrBXnG0t >>796
草の根BBSが流行った頃ターミナルソフト作るためにioctlやりまくったなー
もうあんなのやだ(つかやらないで済む時代になってうれしい)
けどUnixのTerminalサポートするのは今でも結構つらいよね。
ClojureでEmacsライクなエディタ作ろうとしてGUIサイドはどってことないのにTermcap触った瞬間から地獄になって投げたわ
草の根BBSが流行った頃ターミナルソフト作るためにioctlやりまくったなー
もうあんなのやだ(つかやらないで済む時代になってうれしい)
けどUnixのTerminalサポートするのは今でも結構つらいよね。
ClojureでEmacsライクなエディタ作ろうとしてGUIサイドはどってことないのにTermcap触った瞬間から地獄になって投げたわ
800デフォルトの名無しさん
2015/10/14(水) 22:21:24.79ID:2ChufbG/ 検索ワードはこれかな?「ノンブロック getchar」
このブログ記事が参考になるな。
↓
「getcharをnonblockingで行う ( ターミナルからの入力で改行を待たない )」
このブログ記事が参考になるな。
↓
「getcharをnonblockingで行う ( ターミナルからの入力で改行を待たない )」
801デフォルトの名無しさん
2015/10/14(水) 23:01:50.81ID:2ChufbG/ rawモードとかノンカノニカルモードとかがポイントだな
802デフォルトの名無しさん
2015/10/14(水) 23:09:02.30ID:p0+PvMt8 馬鹿には無理だってwww
803デフォルトの名無しさん
2015/10/14(水) 23:21:36.26ID:5HbAHV4d >>802
お前、性格悪いね。消えたら?
お前、性格悪いね。消えたら?
804デフォルトの名無しさん
2015/10/14(水) 23:30:21.59ID:2ChufbG/ >>800
このブログのコードはcygwinでも動いた
このブログのコードはcygwinでも動いた
805デフォルトの名無しさん
2015/10/15(木) 07:50:14.32ID:Jc9I9p20 ここの住民レベル低過ぎてワロタwww
806デフォルトの名無しさん
2015/10/15(木) 09:57:54.09ID:bgi6gKWM >>803
お前の性格は良いのか(笑)
お前の性格は良いのか(笑)
807デフォルトの名無しさん
2015/10/15(木) 10:28:25.11ID:bdlPZJI1 馬鹿には無理
便利な言葉です
便利な言葉です
808デフォルトの名無しさん
2015/10/15(木) 10:36:42.36ID:8odITiKe googleの使い方がわからない
人のアドバイスは無視する
やたら連投する
救いようがありません♭
人のアドバイスは無視する
やたら連投する
救いようがありません♭
809デフォルトの名無しさん
2015/10/15(木) 13:38:25.62ID:CkBS4JKP 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)
バファリング・エコーを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)
810デフォルトの名無しさん
2015/10/15(木) 16:14:21.29ID:DrVVm1l+ 次の本を読んでからこのスレに書き込んでね
詳解UNIXプログラミング
エキスパートCプログラミング
詳解UNIXプログラミング
エキスパートCプログラミング
811デフォルトの名無しさん
2015/10/15(木) 20:38:31.35ID:6VaIlzUA いや、もう>>800でFAだから。
812デフォルトの名無しさん
2015/10/15(木) 21:13:21.78ID:icvNGXaw てゆうか何だったんだ? > CISCOルータ
813デフォルトの名無しさん
2015/10/15(木) 21:39:37.58ID:h5xen+Qp 馬鹿ネットワーク技術者だったか。何で無能なんだろ。
814デフォルトの名無しさん
2015/10/16(金) 00:17:39.90ID:fz/aJ+or >>806
ニフラム言ってるだけの子なんだよ、察してあげなよ
ニフラム言ってるだけの子なんだよ、察してあげなよ
815デフォルトの名無しさん
2015/10/16(金) 08:06:39.18ID:CAnHd74U >>803
かまうのはよせw
かまうのはよせw
816デフォルトの名無しさん
2015/10/16(金) 13:55:15.30ID:xn2kVXMJ >>814
「ニフラム」かメモメモ
「ニフラム」かメモメモ
817デフォルトの名無しさん
2015/10/17(土) 13:01:09.35ID:0Wjec6mz どんなに技術があっても人を茶化すような奴は所詮たいしたことない奴だよ
818デフォルトの名無しさん
2015/10/17(土) 13:45:01.99ID:jFMfpi0y819デフォルトの名無しさん
2015/10/17(土) 15:04:18.68ID:S1mOm2Nj またニフラム君がきたぞw
820デフォルトの名無しさん
2015/10/17(土) 16:45:39.23ID:wWETib34 >>818
ニフラムさん今日もお勤めご苦労さまですw
ニフラムさん今日もお勤めご苦労さまですw
821デフォルトの名無しさん
2015/10/18(日) 01:57:46.77ID:Kfk1zXQv ニフラムってさ
相手との遭遇をなかったことにするんだよな
いつまで経っても未経験のまんま
相手との遭遇をなかったことにするんだよな
いつまで経っても未経験のまんま
822デフォルトの名無しさん
2015/10/18(日) 10:17:11.02ID:1oChFQjU >>796
なんでこんな回りくどいやり方しか思いつかないの?
なんでこんな回りくどいやり方しか思いつかないの?
823デフォルトの名無しさん
2015/10/18(日) 10:45:51.05ID:EniZd4JV 何言ってんだお前
824デフォルトの名無しさん
2015/10/18(日) 19:09:39.36ID:zwvDDOCv >>823
無能だなwハゲ
無能だなwハゲ
825デフォルトの名無しさん
2015/10/22(木) 22:40:46.38ID:TKyrAkIB 疎通確認のためcat hosts(grep でコメント行など削除)をパイプでpingに渡したんですがpingが発行されないです。バグですか?
826デフォルトの名無しさん
2015/10/22(木) 22:42:28.43ID:IeN1W9z9 >>825
入力コマンド晒してくれさい
入力コマンド晒してくれさい
827デフォルトの名無しさん
2015/10/23(金) 01:15:24.42ID:PxOWJO4j >>825
pingがstdinからhost名受け付けるのってどんな処理系?
pingがstdinからhost名受け付けるのってどんな処理系?
828デフォルトの名無しさん
2015/10/23(金) 02:59:50.01ID:yDnEGRAb >>826
cat hosts l ping
cat hosts l ping
829デフォルトの名無しさん
2015/10/23(金) 08:55:16.88ID:Pn67H/qf >>828
流石に無理だ
流石に無理だ
830デフォルトの名無しさん
2015/10/23(金) 11:07:16.21ID:9hpieugb xargsかな
831デフォルトの名無しさん
2015/10/23(金) 11:51:02.14ID:uWexH+L6 〜100列件っての思い出した
832デフォルトの名無しさん
2015/10/23(金) 12:22:45.18ID:yDnEGRAb ごめん。端折りすぎた
cat hosts l awk '{print $2}' でホスト名のリストを取得した。
で、そいつをパイプ経由でpingしたわけさ
cat hosts l awk '{print $2}' でホスト名のリストを取得した。
で、そいつをパイプ経由でpingしたわけさ
833デフォルトの名無しさん
2015/10/23(金) 12:45:47.36ID:X3P3rUpi >>832
awkのsystem関数使え
awkのsystem関数使え
834デフォルトの名無しさん
2015/10/23(金) 13:51:55.86ID:KfqstdW8 ポートスキャン禁止
835デフォルトの名無しさん
2015/11/01(日) 14:19:33.90ID:cQN+SvvU >>832
それじゃ ping を無引数で実行して標準入力からホスト名のリストを入力することになってる
わかりやすく bash/ksh で愚直に書くと
for ff in `cat /etc/hosts | grep -v '^#' | grep -v '^$' | awk '{print $2;}'`
do
ping ${ff}
done
ファイル /etc/hosts の中で # から始まるコメント行と空行だけは除外するようにした
あとインデントのために行頭に全角空白文字入れてあるから space/tab に置換して
それじゃ ping を無引数で実行して標準入力からホスト名のリストを入力することになってる
わかりやすく bash/ksh で愚直に書くと
for ff in `cat /etc/hosts | grep -v '^#' | grep -v '^$' | awk '{print $2;}'`
do
ping ${ff}
done
ファイル /etc/hosts の中で # から始まるコメント行と空行だけは除外するようにした
あとインデントのために行頭に全角空白文字入れてあるから space/tab に置換して
836片山博文MZ ◆T6xkBnTXz7B0
2015/11/24(火) 00:37:44.22ID:YJQOp7Th Motifって人気あるけど、標準じゃないよね? 他にいい選択肢ないの?
837デフォルトの名無しさん
2015/11/24(火) 01:38:32.81ID:+ebJ8Cop838片山博文MZ ◆T6xkBnTXz7B0
2015/11/24(火) 02:09:48.16ID:YJQOp7Th Xaw3dがよさそうだが、書籍あるかな?
839片山博文MZ ◆T6xkBnTXz7B0
2015/11/24(火) 18:10:49.46ID:YJQOp7Th Xt+Xawでアイドル時処理はどうやるの? 教えてちょんまげ
840デフォルトの名無しさん
2015/11/24(火) 21:15:15.72ID:8d9+0wl3 そもそもX11も終わりを迎えようとしてるのに何をいまさら
841片山博文MZ ◆T6xkBnTXz7B0
2015/11/24(火) 21:48:50.01ID:YJQOp7Th いやいやまだ終わらんよ
Mac OSとLinuxでサポートされているのは大きい
Mac OSとLinuxでサポートされているのは大きい
842デフォルトの名無しさん
2015/11/24(火) 23:18:46.91ID:+ebJ8Cop >>841
DesktopとしてのX11はもう死んだも同然じゃないか
それでもあえてX11アプリ書くというなら、今だとgnomeにしとけばいいんじゃないの?
X11書籍いくつかもっててXawのも手元にあるけど、ものっそ古いし。
なんかMZさん20年以上前の技術かつ、すでに死語な物引っ張り出してる感半端ないnndakedo.
#いやむしろMZ氏ならSchemeから生のX11LibベースのGUIライブラリ書いた方がよくね?
#昔のOMRONのUnixマシンがLispベースのアレゲ感あった感じで
DesktopとしてのX11はもう死んだも同然じゃないか
それでもあえてX11アプリ書くというなら、今だとgnomeにしとけばいいんじゃないの?
X11書籍いくつかもっててXawのも手元にあるけど、ものっそ古いし。
なんかMZさん20年以上前の技術かつ、すでに死語な物引っ張り出してる感半端ないnndakedo.
#いやむしろMZ氏ならSchemeから生のX11LibベースのGUIライブラリ書いた方がよくね?
#昔のOMRONのUnixマシンがLispベースのアレゲ感あった感じで
843デフォルトの名無しさん
2015/11/24(火) 23:34:02.25ID:8d9+0wl3 いや、そのLinuxがもうX11からWaylandに移行しようとしてるんだよ
一応ある程度の互換性保つようだけど、ほんとにもういまさらなんだよ
一応ある程度の互換性保つようだけど、ほんとにもういまさらなんだよ
844片山博文MZ ◆T6xkBnTXz7B0
2015/11/25(水) 00:35:59.72ID:WGqqylpJ 残された選択肢はQt、GTK+、Tcl/Tkあたりになるのか。。。
GTK+昔触ったことあるから思い出して使ってみるか。。。
GTK+昔触ったことあるから思い出して使ってみるか。。。
845ねこずきん
2015/11/26(木) 05:58:57.49ID:tASN5hyu androidやChromeの様に独自ウインドウシステムつくるべし
846デフォルトの名無しさん
2015/11/26(木) 08:22:44.38ID:dcxxprpp 【 オンライン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
デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
バトスピ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ライブオン、ディメンション・ゼロ、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・
バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正。
↓
機能制限した下位版を5万円以上で発売 + デュエリ−グ用に改造した上位版でサーバー稼動=営業開始。
↑
下位版の改造および商用利用には、別途で当社との契約が必要。
さ〜て、製作ベンダー見つけよっと!ww(クス
http://wc2014.2ch.net/test/read.cgi/entrance2/1448404407/-13
849デフォルトの名無しさん
2015/11/26(木) 23:50:28.52ID:huY8yWFD 自宅警備員に決まってるだろjk
850片山博文MZ ◆T6xkBnTXz7B0
2015/11/30(月) 21:25:19.74ID:UQmO47jh LaTeX以外でchm,html,pdfに変換できてハイクオリティな出版も可能な簡単な文書プロセッサってなあに?
851デフォルトの名無しさん
2015/11/30(月) 21:35:01.98ID:XhEfnzOJ 粛清
>>850
PostScriptで関数(というかマクロ)を必要なだけ作ればTeXと同じことが出来るよ。
boxes-and-glue modelを理解してる事前提なのと、TeXは動的計画法で箱の配置を決定してるから
TeXと全く同じように出力するには少し骨を折る必要があるけど
やるだけの価値はある。
PostScriptはファイルの入出力もサポートしてるから、文書を読み取って内部データに変換して、
HTMLならHTML形式に変換するプログラムも書こうと思えば書けるし
PDFもASCIIコードの範囲内で(圧縮以外の)全ての機能が使えるから
PDF形式への変換プログラムも書こうと思えばPostScriptで書ける。
chmの形式は知らん。
PostScriptで関数(というかマクロ)を必要なだけ作ればTeXと同じことが出来るよ。
boxes-and-glue modelを理解してる事前提なのと、TeXは動的計画法で箱の配置を決定してるから
TeXと全く同じように出力するには少し骨を折る必要があるけど
やるだけの価値はある。
PostScriptはファイルの入出力もサポートしてるから、文書を読み取って内部データに変換して、
HTMLならHTML形式に変換するプログラムも書こうと思えば書けるし
PDFもASCIIコードの範囲内で(圧縮以外の)全ての機能が使えるから
PDF形式への変換プログラムも書こうと思えばPostScriptで書ける。
chmの形式は知らん。
可能か、否かの意味では可能って意味ならm4使ってhtmlやpdfを作るのも楽しいかも知れん・・・・・・。
854デフォルトの名無しさん
2015/12/02(水) 00:30:25.26ID:4qQZZbn5 現実的にはDITAかな。
「ハイクオリティな出版」を求めるなら組版のチューニングで
相当頑張らないといけないけど。
「ハイクオリティな出版」を求めるなら組版のチューニングで
相当頑張らないといけないけど。
856デフォルトの名無しさん
2015/12/05(土) 12:45:00.11ID:AWNlkBec >>852
さてはやったことないなw
PSですべて書くのは非効率。プロセッサ自体をPSで書く必要もない。
PSは飽くまで出力言語として使うだけであって 他のお手軽/お好みのscript言語で
書いたscriptにPSを吐かせるのが ここにいるUNIXersには普通のやりかただよ
さてはやったことないなw
PSですべて書くのは非効率。プロセッサ自体をPSで書く必要もない。
PSは飽くまで出力言語として使うだけであって 他のお手軽/お好みのscript言語で
書いたscriptにPSを吐かせるのが ここにいるUNIXersには普通のやりかただよ
857片山博文MZ ◆T6xkBnTXz7B0
2015/12/05(土) 12:49:48.80ID:oCbOGloR Pandocを採用したよっ
>>856
やったことはあるでよ。
動的計画法じゃなくてfirst-fitで箱を詰めてく感じにしたけど。
> PSですべて書くのは非効率。プロセッサ自体をPSで書く必要もない。
> PSは飽くまで出力言語として使うだけであって 他のお手軽/お好みのscript言語で
> 書いたscriptにPSを吐かせるのが ここにいるUNIXersには普通のやりかただよ
完全に同意するよ。
LaTeX以外で、htmlやpdfなんかに変換できて(つまり何らかの出力として得ることが出来て)、
ハイクオリティな出版も可能で、文法が簡単で、
それ自体が文書プロセッサにもなってる言語としてPostScriptを挙げたって話だよ。
生のPostScriptを使いたくない?perlに吐かせりゃ良いんじゃない?
やったことはあるでよ。
動的計画法じゃなくてfirst-fitで箱を詰めてく感じにしたけど。
> PSですべて書くのは非効率。プロセッサ自体をPSで書く必要もない。
> PSは飽くまで出力言語として使うだけであって 他のお手軽/お好みのscript言語で
> 書いたscriptにPSを吐かせるのが ここにいるUNIXersには普通のやりかただよ
完全に同意するよ。
LaTeX以外で、htmlやpdfなんかに変換できて(つまり何らかの出力として得ることが出来て)、
ハイクオリティな出版も可能で、文法が簡単で、
それ自体が文書プロセッサにもなってる言語としてPostScriptを挙げたって話だよ。
生のPostScriptを使いたくない?perlに吐かせりゃ良いんじゃない?
859片山博文MZ ◆T6xkBnTXz7B0
2015/12/17(木) 19:46:55.27ID:DR+j++tI Linuxの64ビット事情、どうなってる?
860デフォルトの名無しさん
2015/12/17(木) 22:21:50.96ID:RFQK/sQs 質問が雑すぎ
ARMなどの他のアーキテクチャのバイナリや、
システムそのものもVirtualMachine介さずに動作するから
64/32bit間の差なんてそれを動かすためのライブラリで
HDDの容量食うのを気にするぐらい
ARMなどの他のアーキテクチャのバイナリや、
システムそのものもVirtualMachine介さずに動作するから
64/32bit間の差なんてそれを動かすためのライブラリで
HDDの容量食うのを気にするぐらい
861デフォルトの名無しさん
2015/12/17(木) 22:41:12.38ID:ORM8WttR 片山にマジレスw
862デフォルトの名無しさん
2015/12/18(金) 19:03:33.33ID:mbvyIjbK ほんそれな
863デフォルトの名無しさん
2015/12/18(金) 20:29:31.39ID:9aF9cvEF864デフォルトの名無しさん
2016/01/15(金) 19:04:43.93ID:kPzcSoAF open(2)について
詳解UNIXプログラミングではfcntl.hをインクルードすることになっていますが
ぐぐった限りではsys/types.h, sys/stat.hもインクルードしなければならないようです
どちらが正しいのでしょうか
詳解UNIXプログラミングではfcntl.hをインクルードすることになっていますが
ぐぐった限りではsys/types.h, sys/stat.hもインクルードしなければならないようです
どちらが正しいのでしょうか
865デフォルトの名無しさん
2016/01/16(土) 17:10:40.00ID:T83PzPld866デフォルトの名無しさん
2016/01/16(土) 17:40:09.91ID:cHljheUy867sage
2016/03/27(日) 21:54:03.49ID:w5ZDFKAh 仕事に関係する関連知識の取得のために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.テストメソッドを作成する際にこの引数を利用する
となりますが、実際プログラマーとして勤めている方はこのような利用しない引数を取る関数を設計する際に
どのような狙いを持って作成しますか?
一般論レベルでも構わないので回答いただけると幸いです。
以上
よろしくお願いいたします。
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.テストメソッドを作成する際にこの引数を利用する
となりますが、実際プログラマーとして勤めている方はこのような利用しない引数を取る関数を設計する際に
どのような狙いを持って作成しますか?
一般論レベルでも構わないので回答いただけると幸いです。
以上
よろしくお願いいたします。
868デフォルトの名無しさん
2016/03/27(日) 22:33:57.38ID:xC2rcFta FreeBSDのスレで聞いて見たら
869デフォルトの名無しさん
2016/03/27(日) 22:46:10.15ID:BZ0vZXVN 他のドライバと共通化の柵とか
870デフォルトの名無しさん
2016/03/27(日) 23:02:59.94ID:xC2rcFta ただのユーティリティ関数だわな
871デフォルトの名無しさん
2016/03/27(日) 23:28:03.24ID:X+SL8bpO MFCでもそうだけど、利用しない引数は、コメントアウトしているのが普通
func(/* 引数 */)
まあ、ライブラリを作っていない人は、気にしなくてもよい
func(/* 引数 */)
まあ、ライブラリを作っていない人は、気にしなくてもよい
872デフォルトの名無しさん
2016/03/27(日) 23:29:33.36ID:xC2rcFta MFCw
873デフォルトの名無しさん
2016/03/28(月) 01:12:00.27ID:d9u310OB マジ適当に書くけど
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 かそれに似たようなことがやりたいんじゃないだろうか?
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 かそれに似たようなことがやりたいんじゃないだろうか?
874デフォルトの名無しさん
2016/03/28(月) 01:27:41.39ID:WGFAAxFb POSIXなどの規格で、API仕様や標準ライブラリ関数が決まっていて、変えられないのかも
875デフォルトの名無しさん
2016/03/28(月) 10:50:14.90ID:/+vK8YAf876デフォルトの名無しさん
2016/03/28(月) 11:40:23.53ID:+gzizviZ この程度の奴がカーネルを嬲っていいのかw
877867
2016/03/29(火) 00:26:43.12ID:7osLNwaa ご連絡遅くなり申し訳ありません。
867です。
みなさん回答ありがとうございました。
みなさんの回答でなんとなくイメージがついてきました。
>>868さん
すれ違いでしたでしょうか?
内部アーキテクチャに近いところはFreeBSD関連のスレッドで確認するようにいたします。
>>869,870,873さん
みなさんのアドバイスはほぼ同様の見解に見えました。
確かに関数ポインタ利用の場合、引数は統一しないといけないですよね。
関数ポインタという頭が無かったのですごく勉強になりました。if.cなどさらに上位を読み進めていく上でコール元を確認し、関数ポインタのためかどうか確認していきたいと思います。
>>871さん
これを調べる上でコンパイラによっては、利用しない引数であることを明示する拡張があることも判明しました。コメントアウトしていただければどれだけ楽だったことか。
ライブラリー作成者以外は気にしなくても良いというお言葉心強いです。
わからないことがあってもとりあえず、読み進めていく勇気をいただきました。
>> 874さん
別のマクロでも使われない引数を見ており、それはまさしく他の*nixでは利用するものでした。OSによって実装がここまで違うのかという視点を持てたのはすごく有意義な経験でした。何かに詰まった際には同名の関数が他のOSに存在しないのか確認することにします。
>>875さん
今後、自分でプログラムを書くときには参考にさせていただきます。普段、そこまで高い視点で自分が書くプログラムの設計はしないので勉強になりました。
>>876さん
叱咤をいただきありがとうございます。空気を読まず、これからも粘り強くコードを読んでいこうと思います。
嬲るというほど、自分の手になじむ日が来るか想像がつきませんがこの程度のレベルと言われない程度に成長していくよう頑張ります。また、僕の発言で気分を害されたようでしたら申し訳ありませんでした。
最後に、みなさん色々なご意見ありがとうございました。
これ以上の質問はすれ違いにもなりそうなので、自分自身で試行錯誤したいと思います。
867です。
みなさん回答ありがとうございました。
みなさんの回答でなんとなくイメージがついてきました。
>>868さん
すれ違いでしたでしょうか?
内部アーキテクチャに近いところはFreeBSD関連のスレッドで確認するようにいたします。
>>869,870,873さん
みなさんのアドバイスはほぼ同様の見解に見えました。
確かに関数ポインタ利用の場合、引数は統一しないといけないですよね。
関数ポインタという頭が無かったのですごく勉強になりました。if.cなどさらに上位を読み進めていく上でコール元を確認し、関数ポインタのためかどうか確認していきたいと思います。
>>871さん
これを調べる上でコンパイラによっては、利用しない引数であることを明示する拡張があることも判明しました。コメントアウトしていただければどれだけ楽だったことか。
ライブラリー作成者以外は気にしなくても良いというお言葉心強いです。
わからないことがあってもとりあえず、読み進めていく勇気をいただきました。
>> 874さん
別のマクロでも使われない引数を見ており、それはまさしく他の*nixでは利用するものでした。OSによって実装がここまで違うのかという視点を持てたのはすごく有意義な経験でした。何かに詰まった際には同名の関数が他のOSに存在しないのか確認することにします。
>>875さん
今後、自分でプログラムを書くときには参考にさせていただきます。普段、そこまで高い視点で自分が書くプログラムの設計はしないので勉強になりました。
>>876さん
叱咤をいただきありがとうございます。空気を読まず、これからも粘り強くコードを読んでいこうと思います。
嬲るというほど、自分の手になじむ日が来るか想像がつきませんがこの程度のレベルと言われない程度に成長していくよう頑張ります。また、僕の発言で気分を害されたようでしたら申し訳ありませんでした。
最後に、みなさん色々なご意見ありがとうございました。
これ以上の質問はすれ違いにもなりそうなので、自分自身で試行錯誤したいと思います。
878デフォルトの名無しさん
2016/04/02(土) 12:00:52.43ID:thGUj6UI >>867
thisだろ
thisだろ
879片山博文MZ ◆T6xkBnTXz7B0
2016/04/09(土) 15:38:46.81ID:1rUso06b sedとbashを使って、特定のフォルダ内のファイル名とファイルの中身を
一括文字列置換したいんだが、どうやればいいんだろうか?
一括文字列置換したいんだが、どうやればいいんだろうか?
880デフォルトの名無しさん
2016/04/10(日) 09:08:21.05ID:GJqGP9+Q >>879
sedのネタ使うならls -1の出力をパイプで食わせて加工でbashスクリプトにしてbashに食わせるのが楽じゃないの?
でもオススメするのはpython,perl,rubyなんかで処理だと思うよ。
めちゃ古いシステムでpythonとか入ってないよ!っていうならawkでって選択肢もアリ。
sedのネタ使うならls -1の出力をパイプで食わせて加工でbashスクリプトにしてbashに食わせるのが楽じゃないの?
でもオススメするのはpython,perl,rubyなんかで処理だと思うよ。
めちゃ古いシステムでpythonとか入ってないよ!っていうならawkでって選択肢もアリ。
881デフォルトの名無しさん
2016/04/10(日) 10:25:23.85ID:i82mq8B4 荒らしにかまうなよ。そのうち自己解決するよw
882デフォルトの名無しさん
2016/05/01(日) 16:11:13.46ID:tKi6j9CT 匿名通信(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
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
883デフォルトの名無しさん
2016/05/06(金) 03:11:17.13ID:FS8HTadE ページサイズ取得について
sysconf()の引数として
_SC_PAGESIZE
_SC_PAGE_SIZE
の両方とも利用できるようです
これらはどちらを使うのが正規なのでしょうか?
sysconf()の引数として
_SC_PAGESIZE
_SC_PAGE_SIZE
の両方とも利用できるようです
これらはどちらを使うのが正規なのでしょうか?
884デフォルトの名無しさん
2016/06/24(金) 10:36:57.87ID:QDx4C0nH ソニー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万人に対して賠償金を支払うことに
http://i.gzn.jp/img/2016/06/22/sony-ps3-linux/00_m.jpg
http://gigazine.net/news/20160622-sony-ps3-linux/
ユーザー約1000万人に対して賠償金を支払うことに
885デフォルトの名無しさん
2016/08/19(金) 22:41:43.98ID:Zxguo5e6886デフォルトの名無しさん
2016/08/20(土) 15:02:14.83ID:OZEoChm6 怖くて踏めない
887デフォルトの名無しさん
2016/08/27(土) 17:34:18.10ID:yOz8vjvK888デフォルトの名無しさん
2016/08/27(土) 19:02:29.97ID:6tGwOPx0 やめて><
889デフォルトの名無しさん
2016/09/01(木) 16:04:40.21ID:FGUItcE5890デフォルトの名無しさん
2017/09/05(火) 14:50:56.93ID:Ol0Fklqi 「残っていたSolaris関連の従業員をほぼ全員レイオフした(中略)
レイオフが事実であれば完全に開発終了(中略)
SUN時代からSPARC/Solarisを推進してきたJohn Fowler氏の退社も報道されていた」
Oracle、Solaris関連の従業員をレイオフか | スラド
https://srad.jp/story/17/09/05/0456243/
2017年09月05日 14時34分
レイオフが事実であれば完全に開発終了(中略)
SUN時代からSPARC/Solarisを推進してきたJohn Fowler氏の退社も報道されていた」
Oracle、Solaris関連の従業員をレイオフか | スラド
https://srad.jp/story/17/09/05/0456243/
2017年09月05日 14時34分
891デフォルトの名無しさん
2017/09/06(水) 12:00:01.81ID:DOMpq9nC まだいたのかω
892デフォルトの名無しさん
2017/11/15(水) 21:56:22.87ID:9k4pRhSA ncursesw使ってるんですけど
mvaddstr(0, 0, "aあb");
move(0, 0);
ここでRIGHTキーを押すとカーソルが「あ」に移動しますが
もう一回押すとカーソルがbに移動せず「あ」の位置のままです。
これは「あ」がx座標の1と2を占領してるからカーソルが動いてないように見えるんですよね。
見たまんまカーソルキーを動かすにはどうやればいいですか?
mvaddstr(0, 0, "aあb");
move(0, 0);
ここでRIGHTキーを押すとカーソルが「あ」に移動しますが
もう一回押すとカーソルがbに移動せず「あ」の位置のままです。
これは「あ」がx座標の1と2を占領してるからカーソルが動いてないように見えるんですよね。
見たまんまカーソルキーを動かすにはどうやればいいですか?
893デフォルトの名無しさん
2017/11/16(木) 10:31:50.24ID:PDiU2NGN forkしてjncursesを作ってpush
894デフォルトの名無しさん
2018/04/12(木) 09:41:03.28ID:Zzp9N4Tt UNIX初心者です。
ksh環境にてシェルスクリプトを作っています。
./(スクリプト)20180401
上記コマンド実行時、引数に指定した年月日をyyyy/mm/dd、yy.mm.ddの形式に変換して変数に格納したいです。
使用するコマンド等お解りの方、ご教授お願い致します。
ksh環境にてシェルスクリプトを作っています。
./(スクリプト)20180401
上記コマンド実行時、引数に指定した年月日をyyyy/mm/dd、yy.mm.ddの形式に変換して変数に格納したいです。
使用するコマンド等お解りの方、ご教授お願い致します。
895デフォルトの名無しさん
2018/04/12(木) 11:16:25.66ID:BGK1pm+1896デフォルトの名無しさん
2018/04/12(木) 13:03:59.46ID:Zzp9N4Tt897デフォルトの名無しさん
2018/05/12(土) 10:59:02.49ID:pDgCeBjY 共同ツール 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/
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.67ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
ILEYF
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
ILEYF
899デフォルトの名無しさん
2018/07/05(木) 01:44:54.61ID:RfoszcD2 9B4
900デフォルトの名無しさん
2018/07/05(木) 03:16:26.29ID:8UhFPcQc 茨城県民死ねよ
901デフォルトの名無しさん
2018/07/05(木) 03:19:12.08ID:Mlujh05Y おいクソ荒らし
板荒らすのやめろやボケ
板荒らすのやめろやボケ
902デフォルトの名無しさん
2018/07/05(木) 11:50:50.65ID:IcGtf/nv IPのひとつはこれかな
364 デフォルトの名無しさん 2018/07/04(水) 21:56:02.05SLIP:ワッチョイ f5fa-2e90 [114.149.223.252](1)ID:gFgZc5FG0(1)
BDR
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.04ID:bmsMRAhD 前科あったのかこのIP
164 デフォルトの名無しさん sage 2018/05/25(金) 13:21:39.62ID:slKDy5Ac(1)
114.149.223.252
164 デフォルトの名無しさん sage 2018/05/25(金) 13:21:39.62ID:slKDy5Ac(1)
114.149.223.252
904デフォルトの名無しさん
2018/07/05(木) 13:59:50.38ID:LwyvWF7X https://www.iphiroba.jp/ip.php?mode=ranking&ip=114.149.223.252&token=ccdb774c4b7c209c37ca08253144114b
茨城かな?
茨城かな?
905デフォルトの名無しさん
2018/07/05(木) 15:11:55.88ID:DWuZ9zG7906デフォルトの名無しさん
2018/08/20(月) 16:43:07.23ID:aLr4GPAX 構造のあるテキストの部分だけを加工するにはどうすれば…
$ cat before
* Fruit
apple
banana
orange
banana
* Animal
dog
cat
penguin
$ cat expect
* Fruit
apple
banana
orange
* Animal
cat
dog
penguin
$ cat before
* Fruit
apple
banana
orange
banana
* Animal
dog
cat
penguin
$ cat expect
* Fruit
apple
banana
orange
* Animal
cat
dog
penguin
907906
2018/08/20(月) 16:43:38.67ID:aLr4GPAX sed の write file をプロセス置換と組み合わせればいけるかと思ったがそんなことはなかった
$ cat before | sed -n -e '/^*/,/^$/{/^*/p;/^*/d;}' -e 'w '>(sort -u)
* Fruits
* Animal
apple
banana
cat
dog
orange
penguin
$ 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.21ID:h5lNG6L+ $ cat before
* Fruit
apple
banana
orange
banana
* Animal
dog
cat
banana
penguin
apple
$ cat expect
* Fruit
apple
banana
orange
* Animal
cat
dog
penguin
でもいいのか?
* Fruit
apple
banana
orange
banana
* Animal
dog
cat
banana
penguin
apple
$ cat expect
* Fruit
apple
banana
orange
* Animal
cat
dog
penguin
でもいいのか?
909906
2018/08/20(月) 18:56:15.99ID:aLr4GPAX >>908
いえ、そこまで難しいケースはまだ考えてなくて、各項目の内容をそれぞれソートしたいだけです。
ソートはできれば外部コマンド sort -u などに渡して行いたい。加工方法をコマンドとして取り替えられるようにしたいので。
例えば tr '[a-z]' '[A-Z]' に換えて
* Fruits
APPLE
のようにできると嬉しいです。
いえ、そこまで難しいケースはまだ考えてなくて、各項目の内容をそれぞれソートしたいだけです。
ソートはできれば外部コマンド sort -u などに渡して行いたい。加工方法をコマンドとして取り替えられるようにしたいので。
例えば tr '[a-z]' '[A-Z]' に換えて
* Fruits
APPLE
のようにできると嬉しいです。
910デフォルトの名無しさん
2018/08/20(月) 21:54:46.90ID:jUR6uBV4 切り出して別コマンドに渡すんだよね。
Perl で行の区切りを '*' にして塊を読んで内容をパイプで渡すみたいにすれば良いのではないだろうか。
しかしこれをしようとすると1行プログラムではきつい。
そういえばこれプログラミングのお題スレに問題として書いとくのはどうかな。
お題としては丁度良さそうだし多分みんなして色んな言語で作ってくれるよ。
Perl で行の区切りを '*' にして塊を読んで内容をパイプで渡すみたいにすれば良いのではないだろうか。
しかしこれをしようとすると1行プログラムではきつい。
そういえばこれプログラミングのお題スレに問題として書いとくのはどうかな。
お題としては丁度良さそうだし多分みんなして色んな言語で作ってくれるよ。
911906
2018/08/20(月) 22:17:50.27ID:aLr4GPAX >>910
アドバイスありがとう。
シェルスクリプトはパイプを使って多くのことを圧倒的な短さで出来るし、テキスト処理は最も得意な領域のはず。
しかしこれだけ単純な課題の答えが複雑になってしまうのなら、これは穴なんじゃないか、みんなどうしてるんだろう、と思ったんです。
俺は今月この種のタスクに何度も直面しました。
流れるコンパイルログの一部分だけをハイライトしたかったり、
Makefileのデバッグログのセクションに分かれた情報をファイルや一時変数を介さないで処理したかったり。
egzactのconvなどがシェルスクリプトのデータ生成という穴を埋めたように、この問題が鬼門なら、
解決するコマンドを考えてみたいです。
アドバイスありがとう。
シェルスクリプトはパイプを使って多くのことを圧倒的な短さで出来るし、テキスト処理は最も得意な領域のはず。
しかしこれだけ単純な課題の答えが複雑になってしまうのなら、これは穴なんじゃないか、みんなどうしてるんだろう、と思ったんです。
俺は今月この種のタスクに何度も直面しました。
流れるコンパイルログの一部分だけをハイライトしたかったり、
Makefileのデバッグログのセクションに分かれた情報をファイルや一時変数を介さないで処理したかったり。
egzactのconvなどがシェルスクリプトのデータ生成という穴を埋めたように、この問題が鬼門なら、
解決するコマンドを考えてみたいです。
912デフォルトの名無しさん
2018/08/20(月) 22:45:23.64ID:iMQAgpc+913デフォルトの名無しさん
2018/08/21(火) 01:05:48.21ID:kxzeRRBS シェルは、テキスト・文字列で渡す
一方、PowerShell はオブジェクトだから、構造を持てる。
配列・辞書もOK
Ruby などがベスト
一方、PowerShell はオブジェクトだから、構造を持てる。
配列・辞書もOK
Ruby などがベスト
914906
2018/08/21(火) 03:18:04.26ID:34Jmks75 UNIXプログラミングスレで Powershell を勧められるとは思いませんでしたよ。
他言語での解決が興味深いです。お題スレに投稿しました。よろしくどうぞ
https://mevius.5ch.net/test/read.cgi/tech/1524570314/#758
他言語での解決が興味深いです。お題スレに投稿しました。よろしくどうぞ
https://mevius.5ch.net/test/read.cgi/tech/1524570314/#758
915デフォルトの名無しさん
2018/08/22(水) 20:52:17.34ID:PmiUKg2L 考えたんだけど、もっと単純なタブ区切りデータ
hoo banana
bar apple
baz orange
の二項目名だけをソートして戻す、ということさえシェルスクリプトでは苦悶だ。
戻さないなら cut -f2 | sort でラクなのに。
awesome-cut -f2 <>(sort)
のようにできる読み書き可能ファイルを受け取るコマンド awesome-cut と読み書きプロセス置換<>(...)
機能をシェルに加えれば簡単になるかと思ったがダメだ。この方針はスケールしない。
プロセス置換はコマンド行をパーズした時点で名前付きパイプ?になるらしい。
だからネストされたデータを処理するには、フィルタ処理したい分のプロセス置換をあらかじめベタ書きしておかなくちゃならない。
それを避けるためには xargs のように自分でプロセスを起こす、文字列から作るようなコマンドが必要だ。
しかし現行のシェルスクリプトの仕様では、文字列はネストするほどクォーテーションが厳しくなり、使いにくくなる。
解決方法はわからない。シェルスクリプトを諦めるしかないか。
jqコマンドはJSONを扱う。処理の埋め込みも可能。そういうコマンドの中だけで完結させるか。
(お題スレの解答のPerlは美しかった…)
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.65ID:AXf2QKcH >>915
フィールド指定出来るソートコマンドを使う
フィールド指定出来るソートコマンドを使う
917デフォルトの名無しさん
2018/08/22(水) 22:35:15.97ID:PmiUKg2L >>916
サクッと書けそうなのが良いけど、「フィールド指定可能なtrコマンド」みたいに各コマンドに切り出し埋め込み能力が必要になっちゃう
サクッと書けそうなのが良いけど、「フィールド指定可能なtrコマンド」みたいに各コマンドに切り出し埋め込み能力が必要になっちゃう
918デフォルトの名無しさん
2018/08/22(水) 23:34:08.76ID:AXf2QKcH 何で急にありもしないコマンドを発明してんの?
919デフォルトの名無しさん
2018/08/22(水) 23:48:32.88ID:PmiUKg2L920デフォルトの名無しさん
2018/08/23(木) 00:56:37.97ID:qUZ5eK5Q powershell なら、フィールドでソートするのも簡単だけど
「powershell sort 列指定」で検索!
PowerShell の Sort-Object Tips
http://www.vwnet.jp/windows/PowerShell/2017032901/Sort-Object_Tips.htm
「powershell sort 列指定」で検索!
PowerShell の Sort-Object Tips
http://www.vwnet.jp/windows/PowerShell/2017032901/Sort-Object_Tips.htm
921デフォルトの名無しさん
2018/08/23(木) 01:19:50.15ID:FMBOl46f >>920
ほほう… これが Powershell ですか。項目名でソートできるのが強いですね。
ところでお二方に間違って伝わったみたいで… 書き方が不注意でした。
hoo banana
bar apple
baz orange
の第二カラムをソートして戻すとは、
hoo apple
bar banana
baz orange
を得ることです。第一カラムは変わらないことにご注意を。
sort -k 2 などでは行全体を移動してしまいます。
Powershell ではどのようにこれを実現しますか?
ほほう… これが Powershell ですか。項目名でソートできるのが強いですね。
ところでお二方に間違って伝わったみたいで… 書き方が不注意でした。
hoo banana
bar apple
baz orange
の第二カラムをソートして戻すとは、
hoo apple
bar banana
baz orange
を得ることです。第一カラムは変わらないことにご注意を。
sort -k 2 などでは行全体を移動してしまいます。
Powershell ではどのようにこれを実現しますか?
922デフォルトの名無しさん
2018/08/23(木) 01:26:09.02ID:lJLY7fZ1923デフォルトの名無しさん
2018/08/23(木) 02:39:41.54ID:FMBOl46f >>922
ありがとう。できました(全然苦悶じゃなかった)
all=$(cat); paste <(echo "$all" | cut -f1) <(echo "$all" | cut -f2 | sort)
これを応用すれば上の方の縦型の構造もできるかも。
paste の縦バージョンは cat な訳だから…
ありがとう。できました(全然苦悶じゃなかった)
all=$(cat); paste <(echo "$all" | cut -f1) <(echo "$all" | cut -f2 | sort)
これを応用すれば上の方の縦型の構造もできるかも。
paste の縦バージョンは cat な訳だから…
924923
2018/08/23(木) 03:04:21.42ID:FMBOl46f925デフォルトの名無しさん
2018/08/23(木) 04:41:50.26ID:qUZ5eK5Q 1列目を、f1 ファイルへ抽出する。
2列目を、f2 ファイルへ抽出する
f2 をソートして、f2a ファイルとする
f1, f2a を合体させる
2列目を、f2 ファイルへ抽出する
f2 をソートして、f2a ファイルとする
f1, f2a を合体させる
926デフォルトの名無しさん
2019/06/19(水) 04:55:07.98ID:tVNS+22r 【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
927デフォルトの名無しさん
2020/07/15(水) 15:52:06.92ID:Gv1oILMC -v -vv
こんなオプションで詳細を表示するコマンドがいくつかあります。
# こんなやつ
date -v+1y
rpm -ivh
この v は何を表しているのですか?
こんなオプションで詳細を表示するコマンドがいくつかあります。
# こんなやつ
date -v+1y
rpm -ivh
この v は何を表しているのですか?
928デフォルトの名無しさん
2020/07/15(水) 23:17:43.21ID:sTXcW8ZQ 自己解決
verbose の v だと思う。
verbose の v だと思う。
929デフォルトの名無しさん
2020/07/16(木) 06:12:18.40ID:e3HYNoij grep の -v はたぶん inVert の v。
930デフォルトの名無しさん
2020/07/16(木) 18:41:02.51ID:G1qqh9eh ググっても説明してある意味が分からないということ?
931デフォルトの名無しさん
2022/01/31(月) 21:18:15.66ID:2XvruXKk UNIXでのシステム開発の実際が知りたい
今なんの言語を使って開発してるの?
データベースとか何使ってるの?
今なんの言語を使って開発してるの?
データベースとか何使ってるの?
932デフォルトの名無しさん
2022/01/31(月) 21:18:36.74ID:2XvruXKk あ、UNIXっていうのはmacOS以外ね
933デフォルトの名無しさん
2022/02/01(火) 01:45:58.51ID:aJyTMuPS 少し前までJavaを使っていたが、今はC++。
Rustに行きかけたんだけど偉い人に駄目と言われてしまった。
Rustに行きかけたんだけど偉い人に駄目と言われてしまった。
934デフォルトの名無しさん
2022/02/01(火) 13:10:18.35ID:V7jk2Rfu へー、Rustとか新しいの使えるんだ
UNIXってなんかバラバラで、みんな一体何をどう使って開発しているのか
全然想像つかないんだよね
Linuxみたいにapt-getでrust入れてーとかして使うの?
UNIXってなんかバラバラで、みんな一体何をどう使って開発しているのか
全然想像つかないんだよね
Linuxみたいにapt-getでrust入れてーとかして使うの?
935デフォルトの名無しさん
2022/02/01(火) 13:51:20.76ID:/+irRzAS この頃は Linux ばっかり使っている
UNIX がインストールされているマシンが身近にない
UNIX がインストールされているマシンが身近にない
936デフォルトの名無しさん
2023/08/24(木) 18:51:08.86ID:CY1BVKcv たとえば古い passwd ファイルの形式とかで使われていた
root:x:0:0:root:/root:/bin/bash
user01:x:500:500::/home/user01:/bin/bash
のような「:」区切りのテキストファイルのデータベースを扱いたいとき
C標準のライブラリは何ですか?
Rust用のcrateで言うと何ですか?
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.07ID:AvQ+uDT8 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"]
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.04ID:1ayFYibv >>831
Rust
区切るだけならstr.split(':')かstr.splitn(7, ':')が各項目のstrを次々と返してくれる
各項目毎に型(文字列や整数やOptionなど)フィールドを持つ構造体に入れるなら一般的にserde crateが万能
そのケースならcsv crateで':'をデリミタ指定すると容易
Rust
区切るだけならstr.split(':')かstr.splitn(7, ':')が各項目のstrを次々と返してくれる
各項目毎に型(文字列や整数やOptionなど)フィールドを持つ構造体に入れるなら一般的にserde crateが万能
そのケースならcsv crateで':'をデリミタ指定すると容易
939デフォルトの名無しさん
2023/08/25(金) 09:30:30.62ID:5+gJach+940デフォルトの名無しさん
2023/08/25(金) 10:27:32.18ID:5+gJach+ ちょと治した
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 で読むと余計な行が増えない
穴があるんかな
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.44ID:5+gJach+ ああ has_headers() が読み飛ばしてただけか
942937
2023/08/26(土) 03:49:56.11ID:wsJDYSi/ >>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"]
を修正。
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.35ID:C41SkMxi C言語とRustについて聞かれているのに
一生懸命Rubyで答えてどうするの?
ちょっと心配した方が良いレベルやぞ
一生懸命Rubyで答えてどうするの?
ちょっと心配した方が良いレベルやぞ
944デフォルトの名無しさん
2023/08/27(日) 03:03:02.52ID:/wQZGqy6 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(())
}
以下のように(好きな型名とフィールド名で)構造体を定義するだけで動く
#[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(())
}
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【ラジオ】永野芽郁、田中圭との不倫疑惑後初の『ANNX』で謝罪「誤解を招くような行動…反省」「本当にごめんなさい」★5 [Ailuropoda melanoleuca★]
- 【ラジオ】永野芽郁、田中圭との不倫疑惑後初の『ANNX』で謝罪「誤解を招くような行動…反省」「本当にごめんなさい」★6 [Ailuropoda melanoleuca★]
- 【MLB】オリオールズ・菅野智之 ヤンキース相手に5回無失点の好投! 今季3勝目 自己最多の8奪三振 [冬月記者★]
- コメ5キロ、最高値4220円 16週連続上昇、前年比2倍 ★3 [蚤の市★]
- いじめられていた記憶しかないが…年収2500万円・身長180に急成長・妻も美人なエリート男性が初めて行ってみた「同窓会」 [パンナ・コッタ★]
- 【教育】「紙は感覚刺激し記憶定着」「スウェーデンでは見直しも」…教育団体、デジタル教科書に慎重意見 [ぐれ★]
- ☀快晴の祝日のお🏡
- 【悲報】赤旗記者「ガス数値毎日出すって言ってたのになんで出さない?」万博協会「細けえ事はええねん😤安全や!」 [359965264]
- 【画像】キラキラ女子👩「ギャーッ!ドバイのキラキラ生活楽しすぎーっ!!!」パシャパシャッッww [732289945]
- 【悲報】アニメ評論家「AKIRAは55点、凄いけどそんな面白くない」 [839150984]
- 【画像あり】日本会議の月刊誌「日本の息吹」5月号の表紙はジェットコースター すげえ危なそうなんだが [808139444]
- 【悲報】大阪万博0勝16敗(残日数168日) [616817505]