Linuxプログラミング 2at LINUX
Linuxプログラミング 2 - 暇つぶし2ch2:アジェグ4倍 ◆4xAJeG.COM
10/02/13 16:03:40 mGBOKUh2.net
Linux(特有)のプログラミングってったら
やっぱCUIの話だよね?


3:login:Penguin
10/02/13 17:03:45 TJKctgYE.net
いや、LinuxでのプログラミングといえばOpenOffice.orgのマクロだろ


4:login:Penguin
10/02/13 19:47:35 Tn00P1U3.net
eclipseの使い方を教えてください。

5:login:Penguin
10/02/14 09:39:12 5tEzJbao.net
NetBeans使ったらいいよ。

6:login:Penguin
10/02/14 18:43:09 cKLhOUfG.net
geditを使ったらいいよ。

7:login:Penguin
10/02/14 23:41:39 FNCcI3vj.net
重要な.hファイルをレビューしてくれる便利なスレ

8:login:Penguin
10/02/17 10:41:45 LG688LS7.net
ptraceの代わりになるやつって、いつになったら出るんだ?

9:login:Penguin
10/02/17 20:21:33 honyW9F4.net
systemtapで頑張る、じゃ駄目か?

10:login:Penguin
10/02/17 22:32:59 IOTgDS50.net
LinuxだのWindowsだのって面倒だからさ、もうWebブラウザのCanvasにJavaScriptで出力すれば良いじゃん
一通り描画機能がそろっているから、何でもありだよ

テキストファイルで書けるし、携帯でもそのまま動く


11:login:Penguin
10/02/17 23:58:34 LXLXKQ+J.net
>>10
フラッシュで良くね?

12:login:Penguin
10/02/20 09:09:07 nRp88Zlj.net
Linux でフラッシュの開発できないじゃん。HTML5で出来るほうがうれしいわ。

ところで、
/usr/bin/ld: Dwarf Error: Offset greater than or equal to .debug_str size
ていうエラーがでて悩まされているのだが、これって一般的にどんな理由ででるの?
ぐぐっても今一よく分らん。ld か、gcc のバグみたいなんだが、どうなの。
gcc のバージョン上げるほうが、トラブル多いのでやりたくないのだが。

13:login:Penguin
10/02/20 10:31:53 HTlonogm.net
コンパイルオプションかmakefileの中身をみないと判らないかも…


14:login:Penguin
10/02/20 14:50:17 xHGHiiS6.net
>>12
一回make cleanした方が良くね?

15:12
10/02/20 16:11:07 nRp88Zlj.net
直りました。link option 見てたら、リンクライブラリが足りなかったので、追加したら直った。
そういえば、Dwarf Error の下に undefined symbol error が出てたわ。
オープンソースだからと、そういうミスじゃなくて自分の環境を疑ってた。

16:login:Penguin
10/02/20 22:14:51 sB4t44qX.net
/dev/ttyS0につながっているケーブルを
抜いて、再度接続するとLinuxってHUPシグナル
勝手に送ってくる?



17:login:Penguin
10/02/23 09:52:39 vIQB7Fop.net
>>12
FlexSDK使えばLinuxでもFlash作れんぞ
しかもタダで

18:login:Penguin
10/02/23 15:08:06 0nkv90p7.net
LinuxでのGCCの使い方がいまいち分からない。。。
だからCのソースファイル→コンパイル&リンク出来ない
しかたなくWindowsでBorlandのC++ Compiler
使ってプログラム作成してます。
BCCの方がリンク作業してくれるし、
何かと便利な気がしなくもない。

19:login:Penguin
10/02/23 15:23:26 ItPSxaNh.net
>>18
eclipseとかanjutaとか使ってみたら。

20:login:Penguin
10/02/23 23:56:46 SCYhXebQ.net
>>18
gccは普通にコンパイル&リンクしてくれるぞ?
問題あるならエラー晒せよ
くだ質で

21:login:Penguin
10/02/27 18:55:34 BOrH2yFU.net
NetBeansつかってみなよ

22:login:Penguin
10/02/27 19:02:13 ZHNRN3Op.net
いやです。ほかはともかく、そればっかりは・・・困るというか

23:login:Penguin
10/03/04 20:55:27 N41ZrQSF.net
プログラミングの勉強を始めたいのですが何言語を勉強すればいいですか
目的はTVチューナーのドライバを書くことですが、アナログチューナーなのですぐに使えなくなるのでやっぱやめます
じゃあローグライクゲームを作ることにしますが、ローグライクはcやc++で作られてるそうですね
じゃあc++にするべきですね?visualstudioみたいなのはLinuxには無いのですか
あとまったくの初心者におすすめのサイトを教えてください
c++を選ぶのであってるですか?も教えてください

24:login:Penguin
10/03/04 22:29:21 wUSxBRK0.net
>>23
linuxでprogrammingするならCをまず覚えたほうがいい
visualstudioっていうのはIDEとかだと思われるけど
だいたいvimやemacsのeditorで作業するのが一般的なんじゃないだろうか
だ.け.ど、あると思うよいっぱい
URLリンク(penguin.tantin.jp)
こういう所から好きなのを選ぶといい
選ぶというのは難しいことだけど
お勧めは分からない
僕はvimを使ってるから

25:login:Penguin
10/03/04 23:59:25 uuQpMZ/e.net
俺も使い方覚えるのめんどいんでIDE使わずにEmacsだが
IDEが標準になるぐらいでないとよいGUIアプリは出てこないだろうな

26:login:Penguin
10/03/05 03:27:23 WOCB8/hN.net
あとgitとか覚えとくと便利かも

27:login:Penguin
10/03/05 07:27:34 pKQhUv3w.net
inode直接操作するプログラム
書きたいんだけど

ユーザ空間だけじゃ無理かな?

28:login:Penguin
10/03/05 15:45:32 U1eHb1jX.net
Linuxの共有メモリってshmatで帰ってくるアドレスが
作成した時と参照した時に違って帰ってくる。
内容はちゃんと合ってるんだけど(CentOS5.4 x84)

Solarisではアドレスも一致しているからポインタなん
かも共有しても安全なんだけどね

29:28
10/03/05 16:41:32 U1eHb1jX.net
自己解決
SHM_REMAPってのがあった。

ちゃんと同じアドレスが帰って来ました。


30:login:Penguin
10/03/05 23:46:53 WOCB8/hN.net
>>27
FUSEではことたりない?

31:login:Penguin
10/03/07 10:32:58 C3xf+tVy.net
>>23
とりあえず、JavaScriptでFireFox用ゲームでも作っとけ


32:login:Penguin
10/04/15 02:44:55 7gUXZmzK.net
Ubuntu Weekly Recipe:第117回 UbuntuとEmacsでプログラミングをはじめよう(中編)|gihyo.jp … 技術評論社
URLリンク(gihyo.jp)

33:login:Penguin
10/04/15 04:57:06 pwt3QHgZ.net
そのページってコピペ反転できないんだが嫌がらせ?

34:login:Penguin
10/04/16 00:08:29 VSCJvoX/.net
>>33
普通に出来るけど、ブラウザ何使ってんの?w

35:login:Penguin
10/04/24 20:27:13 WLgVAzv3.net
C++でzipを解凍したいんだけど、zlibを使わないと解凍できないの?

36:login:Penguin
10/04/24 21:00:20 /2NBYvX3.net
ご自分で解析なさってライブラリを自作して下さい。

37:login:Penguin
10/05/11 00:29:04 +zbJLIvU.net
epollとpipeの組み合わせた
サンプルってどこかに無いでしょうか?

38:login:Penguin
10/05/11 01:52:12 GKkWep32.net
>>37
3日待て。

39:login:Penguin
10/05/19 21:25:20 TftsbxQJ.net
タイムアウト付きのflockってどうやって作ればいいんだろうか

40:39
10/05/19 21:32:19 TftsbxQJ.net
C言語で。

41:login:Penguin
10/05/20 04:32:53 0kcdrzIb.net
>>39
sigintrrupt(SIGALRM, 1)をしてSIGALRMのハンドラを
設定しておき、alarmをかければEINTRでflockを設定時間後に
抜ける。 

42:login:Penguin
10/05/20 23:22:35 ZvMEsZoN.net
>>41
なるほど。
スレッド使わない限りそれで大丈夫そうだな。ありがとう。
スレッド使うときはまた別の方法考えるか

43:login:Penguin
10/05/26 07:36:49 di73yeB6.net
Ubuntu10.4でコンパイルしたプログラムを
CentOS5.3で実行しようとすると以下のようなエラーが出ます。

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found

Ubuntuにインストールされているglibcやglibc/glibcxxの方が新しいから、
というのは分かるのですが、
Ubuntu側で対応(コンパイルオプションを変更するなど)して
CentOSでも実行できるようなバイナリを作成することは可能でしょうか。


44:login:Penguin
10/05/26 08:05:35 +Qk1ziVc.net
>>43
最終奥義staticとかどうよ

45:login:Penguin
10/05/26 10:44:27 MphoNb0F.net
staticは剛の拳

46:login:Penguin
10/05/26 11:31:10 ixBtjNHi.net
RH系だったら古いバージョンのコンパイラ、ライブラリが
compat-* パッケージで提供されてるけど、deb系ってそういう
概念たしか無いよね? 

47:43
10/05/26 13:23:24 di73yeB6.net
書き忘れていました。そのプログラムはshared objectも含んでいます…
(本体からはdlopenで利用しています)

staticリンクを試してみたところ、本体は-staticでコンパイルできました。
ですが、.soの方のコンパイル方法がよく分かりません。

通常は
gcc -shared libhello.c -o libhello.so
で作成すると思うのですが、これにglibcをstaticリンクしようと思い
gcc -shared libhello.c -o libhello.so -Wl,-Bstatic -lc -Wl,-Bdynamic
(参考: URLリンク(jarp.does.notwork.org))
としてみたのですが、
ldd libhello.soの結果は
> linux-gate.so.1 => (0x00b23000)
> libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00110000)
> /lib/ld-linux.so.2 (0x00c0b000)
となり、相変わらずlibcがdynamic linkされているようでした。

.soにstaticリンクするにはどうすれば良いでしょうか。

48:login:Penguin
10/05/26 14:02:47 +Qk1ziVc.net
>>47
glibcのスタティックアーカイブが必要なんじゃないかな、と思う。
*.aが入ったパッケージがあればstaticなバイナリが出来ると思うけど。
fedoraではglibc-staticってパッケージに入ってる。
ubuntuはしらん

49:login:Penguin
10/05/26 15:23:04 QStqBRIk.net
>>47
むり。

# aptitude install gcc-4.1
して、そっちつかえ。


50:43
10/05/26 15:35:55 di73yeB6.net
>>48
mainで始まるプログラムは-staticをつけてビルドできています
> not a dynamic executable
ので、スタティックアーカイブが不足している、ということは無いと思います…
(Ubuntuではlibc.aは libc6-devパッケージに含まれるようです。)

>>49
無理ですか…

ちなみに、本体のexecutableファイルをgcc4.4.2で-staticをつけてコンパイルし、
.soをgcc4.1でコンパイルしてCentOSで実行した場合、
使用されるglibcのバージョンがそれぞれ異なることになると思いますが、
この状況は問題があるのでしょうか。
(サンプルを作ってみた限りでは問題なく動作しているように見えますが)

51:login:Penguin
10/06/12 19:42:10 K2M2QRq+.net
メモリマップって何キロバイトずつ割り当てられるんだっけ?

52:login:Penguin
10/07/27 11:02:28 3DcKYDsb.net
特定のTCPポートへの接続を監視してログに出力したいのですが
WindowsではIP Helper APIというAPIを使って取得できたのですが
Linuxの場合はどのようなAPIがあるでしょうか?
何かヒントになるキーワードがあれば教えてください。

53:login:Penguin
10/07/27 11:43:03 1O5g8TAw.net
SNMP+MRTG

54:login:Penguin
10/07/27 14:42:41 EmXpdYGX.net
>>52
wine

55:login:Penguin
10/07/27 14:46:26 3DcKYDsb.net
マジっすか?LinuxはそういうAPIが無いっすか?

56:login:Penguin
10/07/27 15:18:44 66mDo/D6.net
>>52
man netstat


57:login:Penguin
10/07/27 15:57:51 3DcKYDsb.net
なんと。Linuxならこういうのは簡単だと思ったのに
Windowsより難しいとは。

58:login:Penguin
10/07/27 16:22:03 0utad5S3.net
それって,プログラム書く必要さえ無いんじゃないか…
(UNIX板じゃないんだからちゃんと教えてやれよ.)

59:login:Penguin
10/07/27 17:11:36 1O5g8TAw.net
普通はAPIなんて使わないね

60:login:Penguin
10/07/27 17:18:17 3DcKYDsb.net
何を使うんですか?Linux初めてなんで教えてくださいませ。

61:login:Penguin
10/07/27 17:51:06 1O5g8TAw.net
netstat

62:login:Penguin
10/07/27 18:07:17 7hjWYaWJ.net
>>52
iptablesでSYNパケットがきたらULOGターゲットに飛ばすようにして、
ULOGターゲットから飛んできたnetlinkパケットを捕らえる
アプリケーションを作ればいいだろう。

63:login:Penguin
10/07/27 21:14:57 OcuG4Ito.net
>>52
wireshark のソースを読む

64:login:Penguin
10/07/27 21:26:54 K5+BZwp9.net
netstatのソースはないですかね

65:login:Penguin
10/07/27 21:30:16 K5+BZwp9.net
あった!
URLリンク(d.hatena.ne.jp)
これか

66:login:Penguin
10/07/28 07:32:29 SziZRLsZ.net
>>64
あるだろ。
Ubuntu なら apt-get source net-tools とか。

67:login:Penguin
10/07/28 11:51:45 txtD3ILB.net
#include<net/tcp_states.h>
でエラーがでますお

68:login:Penguin
10/07/28 13:10:43 4j1eS4Nj.net
とりあえず、ディストリとバージョン晒せ

69:login:Penguin
10/07/28 14:16:27 txtD3ILB.net
Ubuntuの8.04のvmwareバージョンです。

70:login:Penguin
10/07/28 14:46:49 RnYC8Yk9.net
とりあえず、エラーメッセージを一字一句もらさず正確に晒せ

71:login:Penguin
10/07/28 15:08:39 txtD3ILB.net
コンパイルは
gcc netstat.c
としてます。

こんなエラーです!
netstat.c:5:27: error: net/tcp_states.h: No such file or directory
netstat.c: In function ‘scount’:
netstat.c:27: error: ‘TCPF_ESTABLISHED’ undeclared (first use in this function)
netstat.c:27: error: (Each undeclared identifier is reported only once
netstat.c:27: error: for each function it appears in.)


72:login:Penguin
10/07/28 15:14:30 Vt/K+IlT.net
これ見たまんまじゃ?

73:login:Penguin
10/07/28 15:41:47 txtD3ILB.net
なんか
gcc netstat.c -I /usr/src/linux-headers-2.6.24-28/include
とやったらコンパイルできました。


74:login:Penguin
10/07/28 15:51:32 txtD3ILB.net
やばいっす。動きました。
とりあえずポートしか表示されませんでしたけど
IPアドレスも表示できればあとはログに落とせますね。
わーい。

75:login:Penguin
10/07/29 01:39:24 5EyS8YE1.net
次世代型ptrace ってなんだっけ?

76:login:Penguin
10/08/07 09:19:15 TnDsM19L.net
-O2 -march=amdfam10 -m32 -free-vectorize で握ったzlibがバグありだこれ
報告すべきかすべきでないか…

77:login:Penguin
10/08/17 07:46:34 2bRgFm2K.net
どんな問題があるんですか?

78:login:Penguin
10/08/17 22:16:40 CS/oaTLk.net
ちなみにgcc-4.5ね

fedora使ってると、rpmの機能のかなりの部分が使えなくなる

79:login:Penguin
10/08/19 22:11:02 lwsITLE0.net
Xウィンドウ実践技術講座 基礎から応用まで
代1版が92年だしやっぱり内容古いかな

80:login:Penguin
10/08/29 04:13:38 gK7tzFYA.net
ptraceの代わりになる予定のutraceって
いつになったら代わってくれるんだ?
誰が舵取ってんの?

81:login:Penguin
10/08/29 11:24:57 W5Uooo7S.net
>>23
Linuxのドライバプログラミングの本を読んでみたけど、えらい難しかった。
しかもバグった場合はパソコンがどうかなっちゃうみたいなことが書かれてあって、
こりゃ無理だと。

82:login:Penguin
10/08/29 23:09:01 i6AxMvgi.net
>>81
Windowsもドライバーバグってたらきれいな青い画面が見れますよ

83:login:Penguin
10/08/30 13:53:15 PuulG8pr.net
ドライバプログラミングの本って、グレー色の本?

84:login:Penguin
10/08/31 00:28:02 Q1YyNOak.net
お馬さんが有名です。

85:login:Penguin
10/08/31 02:27:49 SSjmEOpK.net
何のドライバを作るかにもよる

キャラクタデバイスならそんなに難しくないよ。
ブロックデバイスはもう少し難易度高いけど、キャラクタの延長だから
頑張ればなんとかなる。
ネットワークドライバは確かにえらい難しいw


86:login:Penguin
10/08/31 22:37:34 xnYNlRcx.net
デバイスドライバと言ったらUSBドライバだよね。
この説明に多くのページを費やして詳述してくれているものがいいね。

87:login:Penguin
10/09/01 01:09:53 AVfJp7rO.net
最近だとみんなUSB-シリアルとして認識して通信するので意味ないわ・・・

88:login:Penguin
10/09/12 20:08:21 6v8xa5he.net
低レベルの方の標準入力のファイルディスクリプタの定数って
どのヘッダに定義されてたっけ?

89:login:Penguin
10/09/14 13:58:21 k2J0JpsQ.net
Linuxの場合はAPIとは言わないのですか?

90:login:Penguin
10/09/14 18:57:49 LSsKRnY3.net
GtkとQt
新しく勉強するなら どっちがいいですか

91:login:Penguin
10/09/14 20:22:03 ubBcVqtk.net
>>90
そりゃQtだろ・・・

92:login:Penguin
10/09/14 23:12:37 LSsKRnY3.net
すみません。
理由もあると助かります

どのディストリもGNOMEを採用していて、Qtは追加でインストールなんですけど
そういったことも含めてQtになるのでしょうか?

93:login:Penguin
10/09/15 13:26:10 +FCbXRSZ.net
>>92
Qtの方が書いてて楽しいから。
あと、ドキュメントが一元で整備されてて更新頻度も高く
ライブラリも管理されているので割と安心できる。
日本語化された情報もかなり多い。

欠点は企業開発なのでノキアが死んだらつられて死ぬ
可能性がちょっと高いということか。

94:login:Penguin
10/09/16 02:52:05 hDEjq2dq.net
>>93
そのときは誰かが引き継いでオープンソース化するんでわないかと

95:login:Penguin
10/09/16 02:54:52 nTUB3ECz.net
きっとOracleが買い取ってくれるよ

96:login:Penguin
10/09/16 03:25:35 Mp0/1x9U.net
Qtのライセンスが怖いですね。企業の利害がからむと特に。
Linuxですらもいくつもの訴訟をかかえているんでしょ?

97:login:Penguin
10/09/16 03:27:07 nTUB3ECz.net
>>96
怖いっていっても誰もあんたなんか相手にせんやろ

98:login:Penguin
10/09/16 03:36:08 Mp0/1x9U.net
>>97が責任をとってくれるそうです。


99:login:Penguin
10/09/16 03:49:09 XRWA1m87.net
>>96
ほとんどがFUDだけどな。
Microsoftの、
「うちの特許を侵害している。だけど、どこの部分が特許を侵害してるかは契約結ばないと教えてあげない」
とか、もう完全なカツアゲ

100:login:Penguin
10/09/16 04:19:49 d3TNE23i.net
久しぶりに声出してわろたwww

101:login:Penguin
10/09/16 04:40:16 XRWA1m87.net
>>96
つか、GTKやりたいなら、GTKやったら?
GTKもGlade3とかでプログラミングはずいぶん楽になってるし、
今はgtk--も充分使えるしね。
GNOMEの方が標準的なのもおっしゃるとおりだし。
別にGnome-Gtkやってから、Qtやっても大した問題じゃないというか、
その経験は別に無駄にならないよ。
改めて、ああ、こういう切り口もあるんだ、って経験になるはず。

102:login:Penguin
10/09/16 08:17:00 ecVcHbkK.net
>>99
なにそれこわい
>>101
gtkやqtで判りやすいおすすめ日本語サイトあります?

103:login:Penguin
10/09/16 10:26:27 lqzwJaLH.net
>>102
いやいや、それがFUDってやつだよ

104:login:Penguin
10/09/16 14:42:06 nQxYNYf6.net
>>102
とりあえず言語は何使いたいの?
CとC++でも回答が変わるような気がするし、
両方ともPython/Perl/Rubyとかでも可能だが。


105:login:Penguin
10/09/26 13:04:58 y98Mylbc.net
KUniqueApplicationって何するの?

106:login:Penguin
10/09/27 10:23:22 O/UIWRcV.net
int
fd_reopen (int desired_fd, char const *file, int flags, mode_t mode)
{
int fd;

close (desired_fd);
fd = open (file, flags, mode);
if (fd == desired_fd || fd < 0)
return fd;
else
{
int fd2 = fcntl (fd, F_DUPFD, desired_fd);
int saved_errno = errno;
close (fd);
errno = saved_errno;
return fd2;
}
}
これのやってる意味がわからん。
なんとかして閉じて同じ番号で開きなおしたいってことか?

107:login:Penguin
10/09/27 15:02:56 9dshcxct.net
関数名がreopenなんだから、現在のファイルを閉じて、再オープンしてるだけだと思うが。

108:login:Penguin
10/09/27 15:55:42 O/UIWRcV.net
fdの付け替えか。なるほど。

109:login:Penguin
10/10/29 00:09:46 XUIHih2i.net
プロセスAが開いているソケットディスクリプタを、プロセスBにあげたいんだけど
どうしたらいいかな。

110:login:Penguin
10/10/29 19:23:33 EbYXtX+n.net
あの人のコンテンツただ乗り集団が画策するLLVMのビッグウェーブ(w が、
やってくるのに、まだGNUとか時代おくれすぎるだろ。

111:login:Penguin
10/10/29 21:51:14 A0ogCoEx.net
ただ乗りっていうか、アポーとかBSDの人がかなり開発に参加してるじゃん

112:login:Penguin
10/10/30 07:09:23 DfPaw9Am.net
これからはBSDの時代

113:login:Penguin
10/10/30 12:12:06 e5Rq6fJ9.net
プロセスAが開いているソケットディスクリプタを、
プロセスBで使いたいんだけど どうしたらいいかな。

114:login:Penguin
10/10/30 15:22:14 ewTReF1L.net
>>113
ちょっとググっただけで、できそうな話は出てきたぞ
URLリンク(oshiete.goo.ne.jp)


115:login:Penguin
10/10/30 17:01:19 3xL9Dqyh.net
リンク先のリンク先が飛べないな。って JM ってもう無いんだ。。

116:login:Penguin
10/10/30 19:22:50 AZa4J62A.net
>>112
そうだな、Linux終了だな


117:login:Penguin
10/10/30 22:12:21 BsMEYQ6Y.net
>>115
URLリンク(archive.linux.or.jp)
ここに引っ越してる

>>116
バーカ

118:login:Penguin
10/10/31 07:16:47 ie4s4zqd.net
>>113
man unix

...

SCM_RIGHTS
他のプロセスでオープンされたファイルディスクリプタのセットを送受信する。 データ部分にファイルディスクリプタの整数配列が入っている。 渡されたファイルディスクリプタは、あたかも dup(2) で生成されたかのように振る舞う。


119:login:Penguin
10/11/01 08:29:57 2Ytwk1LQ.net
>>115
引越し先はこっち。
URLリンク(linuxjm.sourceforge.jp)
URLリンク(linuxjm.sourceforge.jp)

120:login:Penguin
10/11/03 19:03:18 LOm9zf2z.net
MOD_SSLを使ってSSLサーバを構築しようとしています。
最初にmakeしたときは、ndbm.hがないというのでネットで探したら見つかりました。
それをコピーして使ったところコンパイルは通るようになりました。
しかし、起動に失敗してエラーログを見るとmod_auth_dbm.cに未定義の関数
dbm_fetchがないというエラーが出ていました。犯人はもともとapacheに
含まれていないgdbmというソフトの中のndbm.hというヘッダの中にあって、
dbm_fetch関数を定義してあるソースコードもありました。未定義の関数を
コメントアウトするとコンパイルに失敗します。
この実行時エラーをなくすためにはどのようにコンパイルすればいいのでしょうか。
makeの読み方がわからずどのようなオプションをつければいいのかわかりません。
解決方法が解る方がいたら教えてください。
開発環境はSlackware11.0、GCC3.4.6です。

121:login:Penguin
10/11/03 19:05:03 XRh80cSd.net
GUIのプログラミングって何でやってますか
言語とツールキット
若しくは
言語とライブラリ
を教えてください


122:login:Penguin
10/11/03 19:09:00 NQDNkNv0.net
さくっと書きたいときはQt Pythonで書いてるかな

123:login:Penguin
10/11/03 19:57:24 XRh80cSd.net
>>122
QtでC++ってどうですか
GTKはできないらしいので

124:login:Penguin
10/11/03 20:32:53 NQDNkNv0.net
>>123
Qtは元々C++用に作られたライブラリだからC++で書いても問題ないよ
Pythonで書いても別にPython for Qt独自のの恩恵が得られることはない

125:login:Penguin
10/11/04 07:07:09 tZlg3f78.net
>>124
ありがとうございます
参考になりました
安心してDLしたいと思います

126:login:Penguin
10/11/22 21:49:50 KTz7/IMD.net
>>120

> gdbmというソフトの中のndbm.hというヘッダの中にあって、

ヘッダだけ取り出してコピーしてはいけません。
gdbmというソフトをインストールしてください。

※ gdbmを正規の手続きで導入し、有効化していればdbm_*が使えるようになっているでしょうから『dbm_fetchがないというエラーが出ていました』とはならないはずです。


もしくは、mod_sslをmakeする前にconfigureしているかと思いますが、その時にndbmと違うデータベースを使う様構成してください。


そんな所でつまずく様なら、バイナリパッケージ使った方が良いかも知れません。


127:login:Penguin
10/11/25 02:17:13 yt4Mk06Z.net
TCPやUDP通信で、recvやrecvfrom実行前に、対象ソケットに今受信しているデータ数を取得するにはどのようにすればいいんでしょうか?

128:login:Penguin
10/11/25 18:42:48 RzV8m0BF.net
>>127
getsockoptで調べる

129:127
10/11/26 09:39:02 BmBjOZDb.net
>>128
getsockoptを検索してみました。
受信バッファサイズはSO_RCVBUFで取得できるようですが、今受信しているデータ数を取得するにはどんなオプション指定をすればいいのでしょうか?

130:login:Penguin
10/11/26 15:11:03 hZHeZGDQ.net
>>129
man 7 tcp

131:127
10/11/26 15:56:41 BmBjOZDb.net
>>130
なるほど!
ありがとうございました。

132:login:Penguin
10/12/04 18:34:14 lrbZ4Vw/.net
最近、ようやくファイルディスクプリタの概念を理解することができたので、
ファイルディスクプリタを使ってテスト&遊びをしてみたいと思う。
面白そうな関数ありませんか?

133:login:Penguin
10/12/04 18:50:02 UtwhdPeF.net
>>132
open関数おすすめ
オプションの全組み合わせを順番に試してみろ

134:132
10/12/04 19:08:28 lrbZ4Vw/.net
>>133
ありがとうございます
試してみます

135:login:Penguin
10/12/04 20:43:32 NsFipHC9.net
ソケットでFDが送れるとかおもしろいよね。

136:login:Penguin
10/12/07 15:46:55 MEj833l6.net
flock(2)でタイムアウトさせたいんだけどどうしたらいいかね?

137:login:Penguin
10/12/07 17:00:15 FDUVL6Om.net
SIGALRM

もちっとお手軽な方法がほしいのうとか思う。


138:login:Penguin
10/12/07 21:48:25 pQrU+RrE.net
flockって、だいたいロックした順に並んでるの?

139:login:Penguin
11/06/17 00:47:05.65 Z0wgUHnW.net
Windowsでは、テキストエディタで開いてるものを他のテキストエディタで開こうとすると
「ファイルがロックされています」
のような感じで編集させないことができますが、Linuxではこれができませんか?

140:login:Penguin
11/06/17 00:59:58.01 creDCjXk.net
flockでLOCK_EX


141:login:Penguin
11/06/17 01:31:32.35 Z0wgUHnW.net
>>140
それでは実現できませんでした。

142:login:Penguin
11/06/17 01:46:27.65 otf7FX+H.net
>>141
マジかよ。それ大ニュースだから。世界中で大問題になる。

143:login:Penguin
11/06/17 10:50:29.74 FnT9BICC.net
>>141
本当なら全世界の6割のサーバで障害が発生するぞ!
今すぐ再現手順を明かすんだ!

144:login:Penguin
11/06/17 11:43:54.98 HFvfY6fg.net
>>139
こういう話?
p://linuxjf.sourceforge.jp/JFdocs/kernel-docs-2.6/filesystems/mandatory-locking.txt.html

145:login:Penguin
11/07/02 15:04:22.72 qRtAuIzI.net
共有メモリのアクセス高速化する方法教えて


146:login:Penguin
11/07/02 17:49:21.80 lKRns3Nn.net
>>145
排他しない

147:login:Penguin
11/07/13 13:18:16.11 0nLCWyoY.net
linuxプログラミング=シェルスクリプト
って理解でOK?

148:login:Penguin
11/07/13 13:30:20.30 fUIVhB5h.net
コマンドとコマンドを繋げる事から始まって段階を追っていつのまにか本格的な
プログラミングにまでリニアに勉強している自分に気づけるのがlinux

149:login:Penguin
11/07/27 18:43:29.30 2cBNDfA/.net
linuxでWindowに動画投影する一般的な方法って何?
できればWidget tool kitレベルのもんじゃなくて、
WindowsでいうDirect Showレベルの低水準なヤツ教えて。

150:login:Penguin
11/07/28 09:29:37.35 PfRiPPwR.net
mplayerあたりのソースを読めばいい気がする。
何にも無いところから再生できるから

151:login:Penguin
11/07/28 18:44:59.70 ZtDQHquS.net
やっぱそれしかないか。

152:login:Penguin
11/09/05 15:17:20.05 wCVIfVjj.net
デフォルトで無視されるシグナル
ってSIGCHLDとSIGWINCHしか無いの?
もっとほかにないの?

153:login:Penguin
11/09/05 15:59:57.15 A7RZGaLP.net
>>152
man 7 signal

154:login:Penguin
11/09/05 17:17:48.47 wCVIfVjj.net
>>153
それ見てたんだけどな

155:login:Penguin
11/09/23 17:04:42.58 uuFe0YYV.net
Pixmapを複数のウィンドウで使うことってできる?

156:login:Penguin
11/09/23 17:08:52.49 ENYkylEH.net
出来るよ。
Screenをまたぐことはできないよ。

157:login:Penguin
11/09/24 03:36:44.57 Co89th42.net
出来た
ありがとう

158:login:Penguin
11/10/18 20:00:18.43 uvgVvQyC.net
ロックファイルってどこに作るのが一番ロックですか?

159:login:Penguin
11/10/18 21:21:28.51 OHdmrte5.net
/var/lock

160:login:Penguin
11/10/25 11:01:32.55 25FYUMJ1.net
実験用に、一時的にライブラリパスを 追加 するには
どうしたらいいんだっけか

161:login:Penguin
11/10/25 11:25:34.15 DCrXo93V.net
LD_LIBRARY_PATHのことか?


162:login:Penguin
11/10/25 13:28:23.97 Bj97jHCH.net
Phalanger - The PHP Language Compiler for the .NET Framework
URLリンク(ja.wikipedia.org)


163:login:Penguin
11/10/27 17:30:04.83 Aw8oREGN.net
FireFoxなどのブラウザ上から、ユーザーのローカルのスクリプトなどを実行して
ブラウザに返すような処理はできますか?
Windowsであれば、ActiveXを使ってスクリプト実行できるのですが。(もちろんユーザー側でActiveX実行の許可が必要です)


164:login:Penguin
11/11/06 13:54:11.13 uZqdiifw.net
>>158
/国技館

165:login:Penguin
11/11/09 15:09:24.08 pNvNP0jP.net
CGIはだめなの?

166:login:Penguin
11/11/09 18:16:33.69 7wWX+jtc.net
>>165
cgi以外がだめ

167:login:Penguin
11/11/13 17:40:20.06 xahByUHQ.net
日本語のランゲージファイルをつくろうと思うのですが、これは手作業でテキストエディタ使ってやるもの?
数百とかあるとかなり面倒くさいんだけど。

なんかツール的なものない?

168:login:Penguin
11/11/13 18:35:51.10 APgqfHK5.net
>>167
poファイルの事?
Emacsならpoファイルの編集モードで楽だけど。

169:login:Penguin
11/11/13 19:01:42.31 crIJtm45.net
>>167
gtranslatorはどうかな。

170:login:Penguin
12/02/12 23:33:46.91 vrKTadjR.net
スレリンク(tech板)

171:login:Penguin
12/02/24 20:03:26.72 rI7gSkqO.net
exec*系の関数で二次元配列を引数として渡す方法ってありますかね
縦の要素数は場合によって可変なんですけど

172:login:Penguin
12/02/24 22:03:42.43 ouGJwp5V.net
>>171
むりだろ
基本的に引数で渡せるもんじゃないと

173:login:Penguin
12/02/24 22:12:09.35 TsEE2yLU.net
引数のバイト数に上限があったような希ガス

174:login:Penguin
12/02/24 22:43:01.81 rI7gSkqO.net
回答ありがたいです

char str[2][10];     /*str[0] = "-option" str[1] = "dirname" */
char path[] = "/bin/ls";

exechoge(path, str);

みたいな感じで使いたかったんです
他に方法を考えてみます

175:login:Penguin
12/02/24 23:58:08.48 haxmm7fT.net
>>174
それを2次元配列と言うか…そうだけどさ。あとexechogeはどう宣言する気?
ポインタにしたら長さが分からないし、そうでないなら要素数が変えられない

176:login:Penguin
12/02/25 00:10:10.32 N8ck9GNr.net
番兵でも入れるでそ

177:174
12/02/25 00:12:12.64 4aVapzR1.net
>>175
exec系のやつって結構種類があるので、それのどれかを使えればいいと思った次第です
うーん 難しい

178:login:Penguin
12/02/25 00:54:23.44 R65aOaFI.net
シリアライズしてbase64でエンコードしてしまえ
二次元と言わずどんなに複雑な形式でも渡せる

両方自分で作るなら、適当にプロセス間通信してバイナリ
そのまま流し込んだほうが簡単じゃないかと思うが


179:login:Penguin
12/02/25 11:22:27.40 DrSUXVnw.net
>>178
いやそれは負けだろう。

180:login:Penguin
12/02/25 13:25:03.24 FJpfCqek.net
単にパイプを用意してプロセス間通信すればいいだけだったりして。
int fd[2];
pipe( fd );
if (fork()==0 )
{
close(fd[0] );
for (;;) { read(fd[1]) ...}
}
close(fd[1]);
for(;;) { write(fd[0])...}
って感じ

181:login:Penguin
12/02/25 13:35:12.09 FJpfCqek.net
>>174
これは普通の使い方だよ
char str[3]={"-option","dirname",NULL};
execv( "/usr/bin/echo",str );
って感じで使えばstrの文字列が子プロセスのメモリーにコピーされて
子プロセス側からはmain(ac,av)でav[0]とav[1]で読み出せる。


182:login:Penguin
12/02/25 13:36:35.19 FJpfCqek.net
char str[3]
でなくて
char *str[3]
が正しい

183:174
12/02/25 14:06:47.63 4aVapzR1.net
>>181,182
解りやすいアドバイスありがとうございます
参考にしてできました!

184:login:Penguin
12/02/29 18:02:13.67 YCT92ZdK.net
javascriptってみなさん何を使って書かれています?
emacs+js2-mode? それとも何かの開発環境でしょうか?

185:login:Penguin
12/03/01 00:10:16.20 p+fzgaQ9.net
vim

186:login:Penguin
12/03/01 02:09:39.75 zcg896mH.net
javascript習得する時間より、vim習得する時間の方が長く掛かりそうな件

187:login:Penguin
12/03/01 08:18:21.75 +wd5qPdB.net
gedit

188:184
12/03/01 15:09:49.99 AKrl+MAh.net
どもです。
vimとgeditですか。
javascriptでemacsはあまり人気ないのかな?
eclipse等も挙がるかなとも思いましたが、
まずはその二つのエディタでのjavascript関連を調べてみることにします。

189:login:Penguin
12/03/01 18:56:36.08 aaOc7Y4R.net
そもそもプログラミングでemacsというのが・・・ねぇ・・・

190:login:Penguin
12/03/01 19:24:04.38 CWbiDrNB.net
Geanyという選択肢

191:login:Penguin
12/03/01 19:25:36.29 bqdXtBdB.net
emacsは環境。 /etc/shell に /usr/bin/emacs が入っているのは当然だ

192:login:Penguin
12/03/01 21:55:20.56 5YvjXZTc.net
エディタなんてどれでもたいして変わらんて。
目的で選ぶより自分の手に馴染んだものがいいと思うよ。

193:login:Penguin
12/03/01 23:37:50.99 MEHFRDpm.net
普通は端末で使えるエディタを選ぶだろ。

194:login:Penguin
12/03/02 00:13:05.82 gL7JPOIk.net
そうするとやっぱり MIFES for Linux 一択なのか。

195:login:Penguin
12/03/02 18:08:42.96 kSorCMmC.net
>>194
Xが起動していないフレームバッファで動けば、MIFES foe Linuxを
購入するんだけどね。


196:login:Penguin
12/03/02 19:05:04.89 kSorCMmC.net
URLリンク(www.cnn.co.jp)
URLリンク(downloads.element14.com)
URLリンク(www.raspberrypi.org)

Linuxはこれで確定。

197:login:Penguin
12/03/02 19:50:43.86 jO+ccMa6.net
英国向けじゃないのか?
国内メーカーは何をしている?

198:login:Penguin
12/03/02 19:52:36.31 Wcs5HBU/.net
日本企業だと、R4000で似たようなモンをつくって、20万ぐらいで売っとったなあ・・・。

199:login:Penguin
12/03/03 16:10:00.27 6F922IxX.net
>>197
ヒント。日本でそれを売れば+5000円ぐらいの手数料がつく。

200:login:Penguin
12/03/03 19:12:03.10 8YWnKGd6.net
>>196
楽天で売ってないだろ。
というかそもそも大人用は売ってないだろ。

201:おちんちんびろーん
12/03/06 14:31:19.56 xpdMuQir.net
ある期間の経過時間を測定する方法を教えてください。

dateコマンドなどで測定中にシステム時計を変更されても
そこそこの精度(約10ミリ秒)を保てる方法を探してます。

202:login:Penguin
12/03/06 14:34:55.04 M2y8/38Z.net
>>201
/proc/uptimeの1つめの値(単位 [秒])とか。

203:おちんちんびろーん
12/03/06 15:08:44.67 xpdMuQir.net
>>202
ありがとうございます。
dateコマンドに影響されないことを確認できました。
たいへん助かりました。

204:login:Penguin
12/03/06 17:33:59.60 CxFFdqQe.net
gettimeofday()が標準のような希ガス

205:login:Penguin
12/03/06 19:20:15.48 xpdMuQir.net
>>204
それはもうオブラート?になるそうです

206:login:Penguin
12/03/06 19:23:16.20 XaNSOaIJ.net
もしかして: ビブラート

207:login:Penguin
12/03/07 15:38:00.92 XQas1MTm.net
clock_gettime(CLOCK_MONOTONIC) かな

208:login:Penguin
12/03/07 21:11:19.75 pR/lmYTk.net
>>207
URLリンク(linuxjm.sourceforge.jp)
-------------------------------------------------------
CLOCK_MONOTONIC
  いくつかの開始点が指定されていないため、
  クロックがモノトニックタイムを設定したり表現したりできない。
-------------------------------------------------------

ここの日本語が意味不明でいつも考え込んでしまいます
MONOTONICの解説が来るべき所なのに何書いてんだろねこの人

209:login:Penguin
12/03/07 22:40:04.70 Fe0ncWO1.net
glibcのfprintfってfopenしたディスクリプタに対して
スレッドセーフですか?

210:おちんちんびろーん
12/03/08 16:45:51.38 GdEmGCEZ.net
>>209
そのスレッドでしか触らないならセーフです

211:login:Penguin
12/03/08 17:25:11.24 SfBxsAk4.net
>>209
とりあえず手元のlibc.aを見てみたらvfprintf.oの中にlock unlockが入っているからセーフなんじゃなかろうか?

212:login:Penguin
12/03/08 18:31:49.74 hYRB6Qzq.net
>>209
すげーいいかげんな基準だけど、POSIX.1-2001のgetc_unlocked()が
存在する環境においては、基本的にstdioはスレッドセーフティの確保のために
ロックを行っていると判断していいんじゃないかな
(WindowsのMSVCにも名前が違う似たような関数がある)

getc()のような関数で一文字単位でいちいちロックしてると
流石にパフォーマンスへの影響が馬鹿にならないので、そういう環境では代用に
↑のようなものが用意されてる(ことが多い)


213:おちんちんびろーん
12/03/09 14:33:34.73 4dFasVlh.net
>>209,>>212
URLリンク(linuxjm.sourceforge.jp)
ここを参照すると良いと思います。

214:login:Penguin
12/03/10 20:25:55.87 AgXqPE2S.net
Cのソースをgrepするときにどこの関数の中でヒットしたかも
表示させたいんだけど、どうしたらよいでしょうか

215:login:Penguin
12/03/10 22:16:12.20 DQHe+Cez.net
>>214
grepではそんなことはできない。

216:login:Penguin
12/03/10 22:31:06.75 qRYZkVQs.net
>>215
では、そんなことが出来るプログラムはもうありますか?
無ければ作るが

217:login:Penguin
12/03/10 23:18:47.29 VdIAOAXn.net
>>216
簡単なものでよければ
awk '/^[_a-zA-Z]/{fn=$0}/foo/{print fn;print}' bar.c

218:login:Penguin
12/03/11 01:07:39.90 8VY07izi.net
>>216
無い

219:login:Penguin
12/03/11 09:11:12.56 x4UqQ7FF.net
>>216
トークンが関数を表すかどうかを判断するのって、意外とプログラムとしてかなり高度で、やりがいのある難易度高い題材。
おそらく本当に「grepした単語が含まれる、元の関数」を検索しるコードを書こうとしたら、
C言語の構文解析器を作る規模のことになるので、意外と結構かなり高度。
もし本当にそのレベルでやるのだとしたら、bisonを使うのがおすすめ。
bisonを使えば、直接手動でCコード全て書かなくても、構文解析器のコードを吐き出してくれるので非常に便利。


220:login:Penguin
12/03/11 14:15:24.74 qPRFCpDR.net
>>219
そこまで高度なことする気は無いよ
tagsと適当に合成して済ますつもり

221:login:Penguin
12/03/25 15:03:17.64 782gvZxG.net
コマンドラインで動作するプログラムを作成しているのですが、
こういったプログラムのテストはどのように行うのが一般的なのでしょうか?

はじめの頃は手作業で全て入力して動作確認を行っていたのですが、
オプションが10個程度になると、手作業でのテストは大変な作業になってきました。
こういったテストに一般的な方法や、よく使われる方法があれば教えていただきたいです。
言語はPythonで書いております。

よろしくお願いします。

222:login:Penguin
12/03/25 15:31:14.05 xDoRNBMy.net
プログラマなら皆んな光速で手を動かしてテストしてるよ
手が遅いのは甘え

223:login:Penguin
12/03/25 15:42:00.80 Zsjru2Rm.net
>>222
光速で動かしても意味無いだろ
入力受け付けてすらもらえない

炎のコマで「1/60秒以上の速度で入力」とかあったけど
どう考えても応答速度を超えた入力は受け付けられない

224:login:Penguin
12/03/25 15:53:22.73 2yDiF48J.net
>>221
Pythonなら標準でunittestってモジュールが入ってるよ

225:login:Penguin
12/03/25 17:00:05.08 5e5gIt/0.net
単体テスト用のフレームワークはよくあるけど、結合テストや総合テストは
見かけないね。
>>221は総合テストの合理的な手法を探しているんだろうね。

226:login:Penguin
12/03/25 18:50:09.22 1lCFbfwu.net
ないないない

227:login:Penguin
12/03/25 23:28:00.32 LpnH5yFt.net
>>223
敵はフレームルールだな

228:login:Penguin
12/03/26 11:33:17.27 S27bj0Nf.net
コマンドラインで動くものならシェルスクリプトが鉄板
自分で書け

229:login:Penguin
12/04/10 06:42:51.28 Ei+Puq0J.net
最近、さみしので age

230:login:Penguin
12/04/13 15:50:15.45 /+V4vBkE.net
incronかわいいよ、incronって感じなんだけど、使いまくってる人いる?
信頼性がどれぐらいあるのか知りたい。

231:login:Penguin
12/04/13 17:34:18.76 4fm5Exqh.net
先にテストコードを書き、そのテストをパスすることを目指して開発する方法もある

232:login:Penguin
12/04/13 18:04:54.14 2jh150VN.net
ハードドライビインだな

233:login:Penguin
12/05/03 09:45:04.53 FGUK0p2B.net
ワラスww

234:login:Penguin
12/07/14 17:21:42.21 qSi6hxG7.net
パイプを通じて親子プロセスで対話させたいのですが,
closeを行わずにパイプの終端を示すことはできませんか?
※イメージ
①2つのパイプ生成(入力用/出力用)
②fork(),子プロセスpipeをSTDIN,STDOUTにdup2して例えば/bin/tr "[:lower:]" "[:upper:]"化
③親プロセスはユーザから入力を受け取り,パイプ(親書子読)から子プロセスにデータを送信してパイプ(子書親読)を監視
④子プロセス(例tr)はSTDINのdupを通じてパイプ(親書子読)に来た文字列を処理し結果をパイプ(子書親読)に返し,readでパイプ(親書子読)を監視
⑤親プロセスはパイプ(子書親読)から受け取った結果を表示し③に戻る
※終了
普通に書けば問題なく動作することを確認してます.が,ここでやりたいのは
③の時点で,”次の送信のためにパイプ(親書子読)を閉じない”という方法です.
ただcloseを書かないと④で子プロセスがパイプの終端を検知できず応答しなくなります.
closeしたパイプの復元か,closeを行わずにreadで待機している子プロセスに終端を転送できればいいと思うのですが,
バイト制限,ヌル文字などの方法では実現が不可能でした.(kernel3.4.2,gcc4.6)

235:234
12/07/14 17:25:49.89 qSi6hxG7.net
すみません言語はCで書く前提です

236:login:Penguin
12/07/14 17:59:50.08 Esm6Bb1/.net
ム板で聞いた方がいいんじゃね。

237:login:Penguin
12/07/14 19:00:21.39 nzkno56P.net
signalつかえ

238:234
12/07/14 19:40:03.67 qSi6hxG7.net
>>237
シグナルだと,子プロセスが不特定の場合対応できないと思っていますが,
この認識は間違っていますか?
例えばgnuplotにコマンドを発行しつつ,fitコマンド等の発行結果を取得したい場合などです

239:login:Penguin
12/07/14 19:45:40.84 nzkno56P.net
外部プロセスを使いたいのなら2重にforkして1重目でSIGUSR1なんかを受け取るっててもあるんじゃないかな?

240:login:Penguin
12/07/26 16:17:51.49 wtJtbUft.net
特定のスレッドにシグナルって送れたっけ?

241:login:Penguin
12/07/26 16:31:19.82 5Zr51dMp.net
pid=fork();
if(pid==0)execv("bin/func",NULL);
kill(pid,SIGUSR1);
って感じでおくれるよ

242:login:Penguin
12/07/27 00:59:15.16 dIOt46Zf.net
それはスレッドじゃない

243:login:Penguin
12/07/27 14:28:50.74 rzDDYPdz.net
>>242
じゃあ何になるの?

244:login:Penguin
12/07/28 12:34:07.08 7BQvbjZw.net
プロセス。

245:login:Penguin
12/07/28 13:46:17.99 83+8MRAU.net
でもプロセスじゃないよね

246:login:Penguin
12/07/29 09:17:38.80 DRRnTV50.net
いや、プロセスでしょ。

247:login:Penguin
12/07/29 12:56:08.66 1OypjNDe.net
プロセスの定義による

248:login:Penguin
12/07/30 00:38:15.33 BlRw7uXN.net
Linuxプログラミングには謎が多い
どれもがプロセスとなり どれもがスレッドとなる

249:login:Penguin
12/08/05 18:03:21.01 NQOrt6N5.net
プロセスを無理やりスレッド化したから、謎的な実装になっただけ。

Linuxの実装ではスレッドは同一メモリ空間を共有する複数のプロセス
であってプロセスでも特殊なことをすればこれと同等になる。

250:login:Penguin
12/08/06 03:01:56.55 OHfFtlDR.net
一体『NTPL』とは何か

251:login:Penguin
12/08/06 20:05:56.78 lrYgi91M.net
"The Deamon Load of the Process Table"

252:login:Penguin
12/08/11 15:24:10.39 6m1hNuKe.net
Linuxのメジャーなライラリーの分類や違い主な特徴を説明している
サイトて知りませんか?

253:login:Penguin
12/08/12 10:19:41.61 4e32eoIJ.net
何をするライラリーが欲しいのかくらい書いたら。

254:login:Penguin
12/08/13 04:02:49.59 ZbOvHG5e.net
何をするライブラリーでメジャーなら分類の必要すらないな

255:login:Penguin
12/08/16 21:29:01.02 bXihQ5do.net
各ライブラリーの特徴とかもしらないだけで、知っていたらそんな発言は
しないよな。

256:login:Penguin
12/08/16 23:42:49.21 uOzFckex.net
質問なんですがシャットダウン時にシェル実行するにはどうしたらいいですか?
CentOSです。


257:login:Penguin
12/08/17 01:10:23.89 dywpVQuB.net
シャットダウン時にシェル実行しても速攻でkillされるんじゃね?
そもそもシャットダウン時にインタラクティブにコマンド実行する必要があるの?

258:256
12/08/17 06:44:15.87 sat4lCsi.net
そうですか…
シャットダウンをクリックしたらその日の合計使用時間をzenityで表示してからシャットダウン
っていうのをやりたかったんですが

259:login:Penguin
12/08/17 07:08:25.67 LamlyLNr.net
使ってるウィンドウマネージャや統合環境にもよるだろう
GNOMEだと仮定するとこんなのが出てきた
URLリンク(library.gnome.org)

260:login:Penguin
12/08/17 09:56:30.58 Oc6GpWFD.net
>>258
ならシャトダウン時っつーかログアウト時じゃね?

261:login:Penguin
12/08/29 22:37:57.82 uRemXgn9.net
URLリンク(www.rupan.net)
画像ファイル名の一括リネームのスクリプトをベタ打ちで組んでみました
ここをこうしたほうがいい、などの意見を聞きたいので評価お願いします

262:login:Penguin
12/08/29 23:01:25.69 cVM9gspC.net
> Error
> ERROR: ダウンロードパスワードが間違っています.
  _, ._
(;゚ Д゚)

263:login:Penguin
12/08/29 23:06:19.00 uRemXgn9.net
ああ、パスはlinuxです

264:login:Penguin
12/09/06 14:14:09.86 BuxQouph.net
bwbasicですごいプログラムを書いてる人はいますか?いたらソースリストください。
私はデモプログラムに飢えている男です。

265:login:Penguin
12/09/07 18:31:09.95 DYolflb1.net
合計使用時間書き出してからシャットダウンコマンド呼び出すプログラム用意すれば

266:login:Penguin
12/09/08 14:10:25.84 aeoFZ+br.net
bwBasicって面白そうだな
これってゼビウスくらいなら簡単に作れるのかな

267:login:Penguin
12/09/08 21:30:29.86 TfjdmfwD.net
お前らはQtライブラリ使ってアプリ作ってる?

268:login:Penguin
12/09/09 08:31:12.14 oy+xzYO8.net
MS=Basicを意識して作られたANSI準拠のBasicてだけじゃん。1993~の開発
ってだけで、歴史だけが自慢で、グラフィックに特化した関数があるわけでもなし
Basicの中でshellコマンドが使えるって以外、別に面白みない。

269:login:Penguin
12/09/09 22:51:44.69 LSon9lvj.net
円は描けないのか?

270:login:Penguin
12/09/12 17:18:09.13 p6v22MlY.net
BASICはコンパイラではない現状で主流のBasicはBASICではなくコンパイラである。
これらは行番号を必須としないのでBASICの最も重要な会話型言語の特徴を継承していない。
文法を互換しただけならテキスト変換してライブラリーを用意するだけの力技
それは形式だけの上っ面を互換させただけでBASICの本意である全てが大文字の
BASICとはどの行番号からでも再開でき、美しくないキテレツな言語である。
一時的に止めてパラメータを捏造し再開できるのも特徴である。
行を挿入して途中から走らせることができるのも会話型言語の特徴である。
プログラムを作るのではなくプログラムを体験する為の言語といってもいいだろう。

271:login:Penguin
12/09/13 12:31:26.27 RznLhSNU.net
んなこたぁ誰だって分かってるよバカァ
少年時代にマイコソベーシックマガジン見ながら打ち込んだ日々を懐かしんでるだけだアフォ

272:login:Penguin
12/09/13 12:45:08.59 J1X6KM7h.net
Listlogを打ち込んだ記憶が懐かしい。まみりんとか。

273:login:Penguin
12/09/13 17:27:30.69 TmN9IBv0.net
> 一時的に止めてパラメータを捏造し再開できるのも特徴である。
> 行を挿入して途中から走らせることができるのも会話型言語の特徴である。

VS使えばC++でも出来るよね。

274:login:Penguin
12/09/13 19:56:24.83 4QIuDma3.net
>>273
ソースが無いときっつい

275:login:Penguin
12/09/13 21:24:59.06 pJS+Ec7A.net
javaじゃ駄目かい?

276:login:Penguin
12/09/20 20:48:17.49 N9g86nRZ.net
bwbasic の version 2.10 のソースコードをダウンロードしてビルドしたけど、
cls, locale, color, inkey$ などのMSBasic拡張コマンドが動作しませんでした。

ビルド方法が悪いのが原因かと思ったので、ubuntuのapt-getで公式バイナリー版を入手して試してみましたが、
それでも同様にMSBasic拡張コマンドが動作しませんでした。

むかついたので、ソースコードをハッキングして、cls, locale, color, inkey$ コマンドを自分で書きました。
また、スリープ関数が無かったので、これもオリジナルで追加しました。 vsyncwait 10 とすると、1/60 * 10 秒間だけスリープします。

ソースコードは変更点やパッチの全容が詳細にわかるように git で公開します。以下のgitコマンドでダウンロードできます
git clone git://git.pf.sourceforge.jp/gitroot/k/ke/kemeco/bwbasic_linux.git

277:276
12/09/20 20:55:57.86 N9g86nRZ.net
また、素の2.10のコードはlinux上でのビルドがやりづらいので、ビルドが簡単なようにautoconfまわりを修正しました。
ビルドに必要なツールは autoconf, automake, libtool です。

ビルド方法
./autogen.sh
make
これで、bwbasic バイナリーが作成されるので、そのまま ./bwbasic で実行できます。

例:
/usr/localへのインストールまでしたい場合は
./autogen.sh --prefix=/usr
make
sudo make install
です。

278:276
12/09/20 21:09:43.72 N9g86nRZ.net
その他、git豆:
git pull とすると、(もしもコードに新たな追加が行われてた場合は)その追加分の差分データ分だけを自動的にダウンロードして適用できます。

ソースコードに変更を加えた場合、git diff とすることでパッチファイルの形で確認できます。
git diff > 差分ファイル とすることで、パッチファイルが作成できます。
このパッチファイルをメール等で第三者に渡せば、第三者は patch < 差分ファイル コマンドによって、その差分を適用できます。


279:276
12/09/20 21:11:24.98 N9g86nRZ.net
>>276
× locale
○ locate

280:276
12/09/20 21:15:29.79 N9g86nRZ.net
>>277
× ./autogen.sh --prefix=/usr
○ ./autogen.sh --prefix=/usr/local

281:login:Penguin
12/09/21 12:26:43.90 paTmlJL4.net
autogenとかautoconfigとかcmakeとか全然わからん。
引退したほうがいい?

282:login:Penguin
12/09/21 21:21:48.01 NX6ZJcOe.net
そこでスクリプト言語ですよ

283:login:Penguin
12/11/22 01:41:07.65 +63/cv+l.net
Linuxプログラミングを仕事でやることになり勉強したいのですが、
これは読んどけって本ありますか?
カーネルをいじったり、デバイスドライバ書いたりします。

284:login:Penguin
12/11/22 04:45:55.18 Tks7yc1N.net
お前には無理

285:login:Penguin
12/11/22 05:03:56.15 fFcsM7XY.net
荒らしはスルーで。

残念ながら俺は、そのあたりの参考書知らないので、詳しい人お願い。

286:login:Penguin
12/11/22 05:38:38.77 5hn2PTaL.net
>>283
USBのHIDのデバイスドライバーの場合なら
linux/Documentation/hid/*
linux/drivers/hid/*
git clone git://github.com/gregkh/usb_tutorial.git
が参考になる。

287:login:Penguin
12/11/23 12:40:50.59 HBws9jNj.net
>>284
まあ同感、マスクROMたいぷのワンチップで量産系とかやったことがあるやつ
なら違うだろうけど、アプリプログラマーがデバドラとか書くのって
問題ですぎる。
いまは製品だしてもいつでも修正できるのが多いけど、不具合が許されない
という厳しさがまったく分かっていない連中が作ると意図しない条件で
バグだらけの結果になる。
論理上、絶対にならない条件でもプログラムをテストする、それがプロの領域。
そのための技法は誰が教えてくれるわけじゃないし技術本などで見たこと無いわ。

288:login:Penguin
12/11/25 03:41:35.76 uiIkmOqO.net
>>283
読む余裕があれば、
・Linuxカーネル解析入門 (I・O BOOKS) 平田 豊
・Unix/Linuxプログラミ&#8203;ング理論と実践 Bruce Molay
・Linuxデバイスドライバプログラミング 平田 豊

基礎は身に付く。後はオライリーの本をリファレンスにひたすら実践。

289:login:Penguin
12/11/26 00:55:40.56 ruUOb18P.net
>>287
いつでも直せると思っていたら、書き込みプログラム自体に不具合があって
直せなかったなんて恐ろしいことが…

# 俺はこっそり直して乗り切ったが

290:login:Penguin
13/02/19 00:12:09.34 W1Nf93du.net
オーディオ端子を直接制御するにはどうしたらよいのでしょうか。
/dev/dspとかだと音楽形式データを再生できるだけなのですが
そうではなくて矩形波を出力したいのです。

291:login:Penguin
13/02/19 01:26:34.21 HjQL0Lmv.net
>>287
リーナスだってアマチュアの大学院生の癖してデバイスドライバ書いてたんだから
俺達が書いたって悪い道理が無い
そもそもセキュリティなんて大型コンピューターにだけあればいい。
量産系に論理的セキュリティは不必要。
刀やピストルと一緒に考えている連中には計算機だって使って欲しくないと思うよ

292:login:Penguin
13/02/19 01:52:07.70 zzNztV1o.net
>>291
リーナス氏が学生時代からクリティカルな処理を書いていたのは事実だけど、
彼はプログラムの信頼性に対して執着心が強いでしょう。意固地なくらい。

先日も、Linuxカーネル周りの開発に携わっているレッドハットのPGが
信頼性を軽視する発言をして、それに対しリーナス氏は発狂してそのPGが
カーネル開発から外されそうになった。

無責任なPGが書いたプログラムに大切な秘蔵データが消滅させられたらたまらない。

293:login:Penguin
13/02/19 02:10:21.46 HjQL0Lmv.net
秘蔵データがあるならアナログコンピュータに掛けろと言いたいね
処理に融通は効かないけどあれが一番スピードが早いから
融通は効くけど信頼性が無いからデジタル技術を使うんじゃないの?

294:login:Penguin
13/02/19 03:55:07.86 HjQL0Lmv.net
↓秘蔵データ
((:name "建仁寺垣" :named "敷地" :type "遮蔽垣")
(:name "金閣寺垣" :named "敷地" :type "透し垣")
(:name "銀閣寺垣" :named "敷地")
(:name "大徳寺垣" :named "敷地")
(:name "桂垣" :named "敷地" :type "遮蔽垣")
(:name "光悦寺垣" :named "敷地" :type "透し垣")
(:name "南禅寺垣" :named "敷地")
(:name "龍安寺垣" :type "透し垣")
(:name "御簾垣" :named "形状" :type "遮蔽垣")
(:name "四つ目垣" :named "形状" :type "透し垣")
(:name "茶筅垣" :named "形状")
(:name "矢来垣" :named "形状" :type "透し垣")
(:name "鉄砲垣" :named "形状")
(:name "鎧垣" :named "形状")
(:name "木賊垣" :named "形状" :type "遮蔽垣")
(:name "松明垣")
(:name "大津垣" :named "地域" :type "遮蔽垣")
(:name "沼津垣" :named "地域" :type "遮蔽垣")
(:name "竹穂垣" :named "素材")
(:name "萩垣" :named "素材")
(:name "篠垣" :named "素材")
(:name "柴垣" :named "素材" :type "遮蔽垣")
(:name "黒文字垣" :named "素材")
(:name "利休垣" :named "人名")
(:name "遠州垣" :named "人名"))

295:login:Penguin
13/02/19 15:42:55.97 MsVlcDds.net
>>292
ありゃユーザランド至上主義な話であって
信頼性がどうこうじゃない気もする

296:login:Penguin
13/02/19 22:25:52.08 XMMA90YD.net
LinusのすぐF-word口にするくせなんとかならんの?

性別の単語の違う意味よりももっともっと汚い単語を公けの場でいうのはちょっと…

297:login:Penguin
13/02/19 23:11:45.30 zLsxvq5D.net
>>296
公の場ではないので、うんこちんこ言っていけない理由がない。

298:login:Penguin
13/02/20 20:59:03.35 gPZv0WqC.net
>>297
でもメーリングリストとか公開されてんじゃん

299:login:Penguin
13/02/20 21:11:17.56 0ioWuUYC.net
2012年6月18日 Linusが吠えた! ─中指立てて「NVIDIAは世界最悪の企業」
URLリンク(gihyo.jp)

300:login:Penguin
13/02/21 02:17:22.01 B8My6Moa.net
>>298
公開されてる場が全て公共の場であるとでも?

301:login:Penguin
13/02/21 10:21:58.24 MM+xWvpG.net
何が違うの?

302:login:Penguin
13/02/21 10:24:28.05 VgE+VFBt.net
>>301
公開されているが公共ではない場所もあるということだ

303:login:Penguin
13/02/22 06:53:11.26 0deQN2HD.net
人はそれをプライベートオープンとゆう。
英語のほうがわかりやすい。

304:login:Penguin
13/02/22 21:51:23.69 nzE7RXSC.net
>>303
> ゆう

わざとだったら揚げ足ゴメンネ
素でやってるならいつか恥じかくかも知れないから
今のうちに指摘しておくよ

いう (言う)

ただのお節介だから反応はしなくていい

305:login:Penguin
13/02/22 21:52:58.75 8fGmdqDO.net
ゆうちゃん

306:login:Penguin
13/02/23 13:14:56.75 bM82cp9j.net
>>304
謝らなくても良いから早く死んでね&#x2665;

307:login:Penguin
13/03/07 17:23:34.74 FKSnl68w.net
>>306
> &amp;#x2665;

わざとだったら揚げ足ゴメンネ
素でやってるならいつか恥じかくかも知れないから
今のうちに指摘しておくよ

&amp;#9829;

ただのお節介だから反応はしなくていい

308:login:Penguin
13/03/08 15:51:47.43 U+aJsLu7.net
    

309:login:Penguin
13/03/08 21:00:55.40 +czH499g.net
>>304

わざとだったら揚げ足ゴメンネ
素でやってるならいつか恥じかくかも知れないから
今のうちに指摘しておくよ

恥じ→恥

310:login:Penguin
13/03/08 21:32:44.95 U+aJsLu7.net
    

311:login:Penguin
13/03/08 21:57:44.83 gB8UUge6.net
>>309
バカかお前。
「はじらい」で変換してみろ!

312:login:Penguin
13/03/08 22:02:59.11 U+aJsLu7.net
        

313:login:Penguin
13/03/09 08:29:07.70 9i1lQAz4.net
┐(´д`)┌ヤレヤレ

314:login:Penguin
13/03/09 11:00:42.02 wcV88Ec0.net
はなししって? を思い出した

315:login:Penguin
13/03/09 12:41:09.17 moDqHA3Z.net
<URLリンク(www.mext.go.jp)
内閣告示第二号
送り仮名の付け方
一般の社会生活において現代の国語を書き表すための送り仮名の付け方の
よりどころを、次のように定める。なお、昭和三十四年内閣告示第一号は、廃止する。


昭和四十八年六月十八日
昭和五六年一〇月一日内閣告示第三号 改正
(略)
本則 活用のある語から転じた名詞及び活用のある語に「さ」,「み」,「げ」などの接尾語が付いて名詞になったものは,もとの語の送り仮名の付け方によって送る。
〔例〕
(1) 活用のある語から転じたもの。
動き 仰せ 恐れ 薫り 曇り 調べ 届け 願い 晴れ
当たり 代わり 向かい
狩り 答え 問い 祭り 群れ
憩い 愁い 憂い 香り 極み 初め
近く 遠く
(2) 「さ」,「み」,「げ」などの接尾語が付いたもの。
暑さ 大きさ 正しさ 確かさ
明るみ 重み 憎しみ
惜しげ
例外 次の語は,送り仮名を付けない。
謡 虞 趣 氷 印  頂 帯 畳
卸 煙 恋 志 次 隣 富 恥 話 光 舞
折 係 掛(かかり) 組 肥 並(なみ) 巻 割

316:login:Penguin
13/03/25 21:36:47.10 JHdm/UFP.net
>>290
事前に希望する周波数の矩形波サウンドファイルを作っておけばいいじゃん

317:login:Penguin
13/03/28 09:38:23.71 3wbf3FIT.net
>>316
どのくらいの長さのを作るつもりなの?
ループ再生は綺麗に出来ないけどどうするの?
そういうところに思い至らないのはなんで?

318:login:Penguin
13/03/28 09:43:42.32 BuBIjbZj.net
>>317
4G位作っとけば当分使えるんじゃね。映像の入ってるDVDでさえそんなもんだし
足らないなら64ビット環境にしろ

319:login:Penguin
13/03/28 20:06:27.07 9Vh8REsS.net
amsynthのソースから
Dual oscillators with classic waveforms - sine / saw / square / noise
この辺りをかっぱいで来ればいいんじゃね?

320:login:Penguin
13/03/30 08:28:24.37 7gqQMFdx.net
jaaaで周波数指定して出せたはず

321:login:Penguin
13/03/30 09:33:27.68 ZVeaXs3i.net
先日、他部署を交えて開かれた社内技術交換会でのこと。
先輩は自分が担当したLinux用ソフトのプログラミング中に思いついたという
あるアルゴリズムについて得意気に解説し始めた。話し始めてしばらくして、
隣の部署の人が口をはさんだ。「それ、有名な○○のアルゴリズムですよね。
ウチでも昔はよく使いました。でもそれには××という欠点があるので、
今ではその改良版の◎◎のアルゴリズムの方を使っています。
ところで今日のお話は○○のアルゴリズムの別の改良方法か何かですか?」
そのあと先輩の話は支離滅裂になり、何の技術交換会だったのか
よく覚えていない…

322:login:Penguin
13/09/18 20:16:06.61 iUp/zV3H.net
おまいら自分しか使わないソフトウェアでも
Autoconf、Automake、その他 AutoXXX を
使ってる?
おいらは面倒くさいからマクロ使いまくりの
Makefileを使い回してる

323:login:Penguin
13/09/18 21:11:36.16 2rNSOdCt.net
Qtじゃないのか?

324:login:Penguin
13/09/20 20:28:55.95 MzCzBYBP.net
Javaじゃないのか?

325:login:Penguin
13/09/22 17:10:13.80 cstCGatz.net
もばいるうぃふぃるーた使ってると
全部jsで書いてるやつが絶望的すぎて
この文化滅びねえかなあ

326:login:Penguin
13/09/23 12:17:12.31 7VXl27N+.net
全部jsで書くとすっごい楽

327:login:Penguin
13/09/25 01:57:30.89 fyCvLait.net
>>322
使ってるよ
Autotoolsは便利よ

328:login:Penguin
13/09/25 01:59:59.21 fyCvLait.net
makeはわりと機能が制限されるし
配布するならconfigure使えた方がかっこE

329:login:Penguin
13/10/01 19:45:42.59 54XEcfmJ.net
2ch専ブラの開発を始めて見ました
今のところ閲覧専用ですが、
試しても良いという方がいましたらよろしくお願いします

URLリンク(sourceforge.jp)

git clone git://git.sourceforge.jp/gitroot/ntch/develop.git

330:login:Penguin
13/10/01 19:48:16.73 7MEbv9gu.net
ほぉ。コンソール版とはおもしろい。

331:login:Penguin
13/10/04 00:56:47.16 OFnAU69+.net
板名でスペースしたらコアダンプした
さすがC

332:329
13/10/04 08:36:26.67 QQCyBl3O.net
試して頂いてありがとうございます
もし可能でしたらコアダンプの内容をソースフォージの掲示板か
ブログのコメントに貼り付けて頂けないでしょうか

ソースフォージ掲示板
URLリンク(sourceforge.jp)
ブログ
URLリンク(neetchan.on.arena.ne.jp)

333:login:Penguin
13/10/04 17:40:36.64 jUNukImU.net
>>329
debパッケージ化して配布すれば使ってくれる人が増えるはず(ウブンツとか

334:login:Penguin
13/10/04 17:48:45.40 tgM5eXKg.net
>>333
youがやりなよ

335:331
13/10/04 19:25:55.56 TUkUOKBk.net
lubuntu 12.04 x86版

gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
aptで
libgdbm-devel libssl-devel libncursesw5-develを追加
ndbmうんたらでエラーなのでMakefileのgdbmのコメント外してコンパイル完了

336:331
13/10/04 19:30:20.82 TUkUOKBk.net
失礼
lubuntu 12.04 x86版

gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
aptで
libgdbm-devel libssl-devel libncursesw5-develを追加
ndbmうんたらでエラーなのでMakefileのgdbmのコメント外してコンパイル完了

そのままだとコアダンプしたけど
gccの-Oを外すか-O0にしたら動作したので最適化バグか
PC等→linux板からこのスレ確認。

その他
・vimのswpファイルが混入している
・/bin/shがbashじゃないと==は動かない。=ならおk

ほとんどプログラム固有の問題ではないので
スレの内容的にもこっちに書いておいた

337:331
13/10/04 19:36:05.69 TUkUOKBk.net
パッケージと言わずとも.configureがあったほうがいいわな
まあ現時点の規模では微妙だが

2chブラウザとしては
CUIだからってサクサクでもなんともねえしかえって不都合が増える
このスレ探してみるだけでかなりの労力を使った
CUIが好みならnavi2chとかのほうが便利だし

学習用でのみ許される

338:login:Penguin
13/10/04 22:07:45.20 LVAH4n2H.net
とりあえず使ってみた。Fedora19ならgdbm-devel openssl-devel
ncurses-devel を入れて、ビルドも警告一つ出るけどOK。実行も可能。
スレの最後でjすると、少し戻るのが違和感あり。
configureするなら、この規模だとautoconfだけで十分かな?
$ autoscan
$ mv configure.scan configure.ac
$ mv Makefile Makefile.in
$ autoreconf
するだけの簡単なお仕事。make installはできないけどね。

339:login:Penguin
13/10/04 22:13:21.08 QQCyBl3O.net
>333
パッケージ化はやりたいですね
だけど、今のところ普通の機能で無いものが多いのでそこまで辿り着けそうに無いです
>334
本当に、協力してくれる人絶賛募集中です。現在SSLに苦戦中

>331
本当に色々検証して頂いてありがとうございました。
swpファイルとシェルは修正します。最適化オプションは外さないで済めば
その方がいいんですが、外すしか無いですね...
現状微妙なのは仰るとおりです。navi2chも見てみましたが高機能そうです
ただemacs使ったことない(恥)
linuxの2chブラウザーというとJDしか使って無かったです。
とはいえせっかく作り始めたので納得のいくところまでは完成させます

いまのところ絶対に入れたいのは
1.書込(多分●も対応)
2.読込履歴
3.お気に入り(板、スレッド)

漠然と入れたいと思っている物
しおり(レス番合メモ)、自レス判定
正規表現検索、スレッドの並べ替え
yum apt対応

とにかく、レス頂いてありがとうございました

340:login:Penguin
13/10/04 22:17:34.69 QQCyBl3O.net
>338
ありがとうございます
スレ最後の位置は確かにおかしいですね。ただちょっと
うまく直せないでいます
autoconfやってみます(使ったことなかった)

341:login:Penguin
13/10/04 23:02:07.33 ul3sk8mh.net
Debian Wheezy (64bit)
libgdbm-dev,libssl-dev,libncursesw5-dev
をインストールした。
>>336と同様のエラーが出るので、
(src/inc/utils/db.h:5 ndbm.h が存在しない)
#Debian系にはndbm.hがないみたい?

Makefileの7行目をコメントアウトしてコンパイルした。
こちらでは特に警告は出なかった。

bキーで40レス近く戻るとそれ以上戻れなくなるっぽい。
おま環だったらすまん。

342:341
13/10/04 23:08:46.81 ul3sk8mh.net
訂正
bキーでどのくらい戻れるかはスレによって違う。

343:login:Penguin
13/10/04 23:50:03.15 QQCyBl3O.net
>341
情報ありがとうございます。
ヘッダーはautoconf使うとエラーにならなくなるのかもしれません
いまちょっと調べています

bキーに関してちょっとこちらで現象が再現できませんでした
現象の起きるスレがわかると解決できるかもしれません

そろそろスレを占有しすぎかもしれないでの
>332の掲示板やブログのコメント欄もよかったら使って下さい

344:341
13/10/05 00:04:28.55 Tmv5/tyS.net
>>343
このスレやここのPuppyLinuxスレ他多数で確認。
fキー押しっぱなしで最後までスクロールしてから
bキー押しっぱなしで戻ると再現出来るかもしれません。
しないようであればおま環ということでスルーしておいてください。
ここに書くのはとりあえずここまでにします。

345:login:Penguin
13/10/05 00:15:59.02 GTYJN2J8.net
>344
再現しました。画面の大きさによって起きるみたいです
ありがとうございました。

346:338
13/10/05 23:13:26.39 0YqdOiOx.net
>>340
まじめにやるなら、automakeも使ったほうが楽ですよ。
この程度の規模ならディレクトリ分けずに、
bin_PROGRAMS = ntch
ntch_SOURCES = hoge.h hoge.c .....
って書いたMakefile.amを作るだけですから。
そうするとMakefileも自動で作ってくれますし。
規模が大きくなると、いろいろ手間が増えます。。。

347:340
13/10/06 09:27:15.90 XiGJQ0Up.net
ありがとうございます。参考にします

348:login:Penguin
13/12/14 18:12:35.03 ymJW8grE.net
使用言語:C言語
目的:キーボード入力を読み取る(キーのプッシュ・リリースも読み取りできるように)

/dev 以下に存在するデバイスから、キーボードデバイスを検索して int fd = fopen() する方法がわかりません。
(キーボードデバイスを探す為の具体的な方法がわかりません)

これを判定して検索する為の便利な関数や、定形的な方法はあるのでしょうか。

349:348
13/12/14 19:10:49.70 ymJW8grE.net
>>329
Debian7.2(32bit版)上でビルドできて動作もしました。

別途必要だったライブラリーは以下のコマンドで入れました。
apt-get install libncursesw5-dev libssl-dev libgdbm-dev libsqlite3-dev

備考:
Debian7.2だと、ncurses.h が /usr/include/ 直下に置かれていたので、ビルド時にエラーとなったので、(ソースでは<ncursesw/ncurses.h>なので)
/usr/include/ncursesw/ を作成し、そこへ ncurses.h をコピーして解決しました。

350:348
13/12/14 19:30:06.72 ymJW8grE.net
私も以前CUI上で2ちゃん見るための簡単なツールを作って使ってましたが、実態としてはwgetのラッパに過ぎないおもちゃですw
URLリンク(github.com)

一方、ntchは作りが本格的なので(ちゃんとsqliteとか使ってるし)、
今後CUIで2ちゃん見たくなった際はこちらを使わせてもらおうと思いました。

351:login:Penguin
13/12/14 19:46:45.18 3qf0E3TD.net
navi2chでええやん

352:login:Penguin
13/12/14 22:28:59.61 shkdSPEZ.net
rawモードじゃダメなんかい?

353:login:Penguin
13/12/14 22:48:29.48 1JjcODpJ.net
>349

使って頂いてありがとうございます。設定修正してみます。
(環境関係の設定が未だ良くわかってませんが...)

ls2ch使ってみました。
flexとbisonの追加インストールで問題なくビルド完了しました(Fedora19)
最初ちょっと使い方がわからなくて戸惑いましたが、
コマンドのパラメーターで現在の閲覧状態をコントロールしてるんですね
これならシェルからsed awkで操作するようなスクリプトも書けますね
UNIX系はこう言うスタイルのほうが流儀にあってるのかなぁ

autoXXX系のツールを使いこなしてらっしゃる様でうらやましいです。
autoconfの公式のpdfを読んでみましたが、最初の方のページだけ読んで放置状態です
(英語超苦手。でも勉強したい)自分に必要なのはいきなり細かい説明じゃなくて
オライリーの本みたいに体系的に解説してくれる本なんだけど...

354:login:Penguin
13/12/14 22:51:46.65 1JjcODpJ.net
353 = 329です

あと>348は全くわかりません(期待されてないと思いますが)

355:login:Penguin
13/12/15 02:09:41.00 YZbs59Oi.net
>>348
<sys/ioctl.h> ioctl()がデバイス関連

read(),write()などの統一されたインターフェースから、
はみ出した部分

Windowsみたいに、GUIプログラミングで、
キーボードイベントを取ればよいのでは?
GUIプログラミングしてないの?

356:login:Penguin
13/12/16 16:18:47.60 4ykaDdnf.net
>>355
リヤルタイムキーボード入力を期待するなら、スキャンコードで処理するんじゃね?
GUIで取り込めるキーボードイベントって前処理はいってないか?日本語変換とか?

357:348
13/12/17 21:23:03.83 M2zWQh5T.net
>>353
autotoolsは機能が多すぎるので、どの方法がスマートなのかを私は知りません。私はLIBS=pkg-configのような泥臭い方法をよく行います。

ntch:
pullしたらdisp.hまわりが更新されてたので再びビルドテストしました。以下の全てで修正無しにビルド可能でした:
Debian7.3(x86, 32bit)
Ubuntu13.10(x86, 32bit)
Arch(x86_64, 64bit)
CLFS(x86_64, 64bit)


Debian7.3以外の環境でも起きるかはテストしていませんが、:w による vi 起動で書き込み後に ntch へ戻った時点で、カーソルキーが効かなくなるバグに気づきました。
X11上でWMがxmonadの環境でのテストなので、少し特殊ですが。gnome-terminal, xterm どちらでも同様に書き込み後にカーソルキーが効かなくなりました。
(なお、c,j,k

358:348
13/12/17 21:27:37.72 M2zWQh5T.net
ntch:
(なお、c,j,k,スペース を用いての移動には問題は起きてません。認識しなくなるのはカーソルキーだけのようです)
また、非X11上ではこの問題は起きないようです。(生ターミナル上のfbterm上でテストした場合はカーソルの問題は生じませんでした)


もしかしたらX11 xmonad環境側の問題かもしれないので、同様の報告が他に無ければ気にしなくてもいい問題だと思います。(c,j,k,スペース のみでも使うことはできるので)

359:353
13/12/17 22:49:14.16 MdviSGDM.net
>357
沢山試して頂いてありがとうございます。
こちらでもFedora+Gnome3 , Ubuntu+Unityで試したところ
同様な現象が確認出来ました。
もしかしたら初期化したkeypadのライブラリーがviを呼び出すことでリセット
されてしまっているのかもしれません
少しテストしてみます。

360:login:Penguin
13/12/19 01:26:14.33 JHCT9t+S.net
IDEはアンジュタかな?

361:355
13/12/19 04:10:22.72 hl3mvVHB.net
>>348 >>355-356
端末上で、コマンドでのリアルタイムキー入力なら、
stty raw -echo
で、バッファリングとエコーを無くせる
ただし、使った後は、端末の設定を元に戻すこと
そうしないと、端末がおかしくなる

もし端末がおかしくなったら、
Ctrl-J、stty sane、Ctrl-J、と入力する
この入力も端末に表示されないが、これで端末が元に戻る

それと、ddで、押されたキーを取得する

362:348
13/12/22 00:22:12.53 Kx6UaPdn.net
その方法ではキーボードデバイスの正確なキー情報を得るには不十分なのではないでしょうか。
なぜなら、この方法では左右Shift,Alt,Ctrl等の違いを判別できそうにありません。
また、キーを放した際の情報も得られそうにありません。

また、Cならば普通はこれはtermiosで行なうことだと思います。
そしてtermiosだけではキーボードデバイスの正確なキー情報を得るには不十分です。

363:348
13/12/22 01:01:31.85 Kx6UaPdn.net
行ないたいことは、それが本当にキーボードデバイスなのかを判断したいということです。
キーボードデバイスを直接読む為に/dev/input以下evdev)のデバイスを使用することを考えてますが、
これらのどれが本当にキーボードデバイスなのかを知る為の方法として、どのような方法で皆は行なっているのかを聞いてみたい。ということです。
(もし自分が知らない簡単な方法があるならば、それを使わないのは損なので)

自分が現状考えてる判別方法としてはA,Bの2つあります:

A: evdev以下の全てのデバイスに関して、ioctlでEV_CNTとEC_KEYで確認した上で、
かつ、一般的なキーボードデバイスに備わってると想定できるキー範囲 (KEY_RESERVED ... KEY_MIN_INTERESTING) にて、
そのビットが立っているならキーボードデバイスのはずだ、というヒューリスティックな判別方法。
これはlibxkbcommonのtestソースで用いられていた方法です。

B: udevによって /dev/input/{by-id,by-path} が作られる前提で、
bi-* 以下のキーボードデバイスはサフィックスとして、(どうやら)-kbd が付くルール(のような雰囲気)なので、
単純にそのような名前のデバイスがキーボードデバイスのはずである。という判別方法。
この方法は単純で簡単なので良いのですが、これは by-* に依存してます。
by-* を作るかはudev設定に依存する(らしい)ので(最近の環境なら問題無いはずですが)動かない環境もありうるという懸念。

Aならば by-* には依存しないので、Bよりも多くの環境で動作するはずですが、方法が泥臭すぎて疲れます。
そこでもしCがあるなら聞いてみたい。ということでした。

364:355
13/12/23 15:38:35.71 YknPLdXL.net
このあたりの、/proc/ファイルから、
キーボード情報を取れないか?

IRQ(Interrupt Request) 割り込み要求
割り込みコントローラ
cat /proc/interrupts

I/Oアドレス、ポート
cat /proc/ioports

DMA(Direct Memory Addressing)
cat /proc/dma

PCIバス、PCIデバイス
lspci

365:355
13/12/23 16:49:51.97 YknPLdXL.net
Linuxカーネル解析入門、平田豊、2011
という本によると、PCIの仕様書は、
PCI SIGという団体が管理していて、有料らしい

PCIコンフィグレーション空間に、
デバイスの種類や機能を示す、クラスコードというのがある
基本クラス[base class:0Bh]、サブクラス[sub class:0Ah]、
プログラミング・インターフェースクラス[programing interface class:09h]

基本クラスで関係ありそうなのは、
00h クラスコードが定義される前の、古いデバイス
09h Input devices
この09hで、サブクラスの値で、マウスとKBが判別できるかも?

これら以外は、udev関連かな?

366:login:Penguin
13/12/23 18:10:31.51 Y4TzeW73.net
>362
> 左右Shift,Alt,Ctrl等の違いを判別できそうにありません。

思い込みで書くなよ... つか、xev のソースでも見れば?

367:login:Penguin
13/12/23 23:46:39.61 PacU4lkG.net
2chブラウザー(ntch)に同期機能を付けてみました
URLリンク(sourceforge.jp)

以下で実験用のサーバーを稼働していますので、良かったら試してみて下さい。
URLリンク(neetchan.securesite.jp)

368:login:Penguin
13/12/24 22:37:13.70 idpf8xZq.net
全板検索からお気に入りに追加できないです

369:login:Penguin
13/12/24 23:38:40.86 Wc9nyaLb.net
>>368
ありがとうございます
機能リクエストチケットというのを登録してみました
URLリンク(sourceforge.jp)

370:348
13/12/28 09:05:56.70 58qchT2I.net
>>367
ページの読み込み中に、進むや戻るの操作を素早く行うと(ガチャ操作すると)、内部的に現在位置的な値の整合性がおかしくなる場合があるようです。

371:348
13/12/28 11:58:36.76 58qchT2I.net
378が起きないように修正する、バンドエイド的な修正パッチ書きました。
URLリンク(gist.github.com)

これでとりあえずれレバガチャしても大丈夫なようにはなりますが、
ソース全体をまじめに検証したわけではないので、(ただの適当なバンドエイドなので)
これによってnt_read_thread()等の動作に変な副作用が生じてしまうか等は、なにも調べてないです。

372:login:Penguin
13/12/28 12:57:47.63 AeSXRH7E.net
>371
ありがとうございます

2,3日中にアップデートするのでパッチ適用させていただきます
多分、今の進む操作は、スレタイの選択キーと同じなので
この時に(おそらく連続ネットワーク接続で)2chから弾かれて
エラーの場合におかしくなってるんですね。
ただ、この時に以前に開いていたレス一覧の情報が残ってると
良いんですが無い場合に問題があるかもしれないので
レス一覧の画面情報が初期化されているか確認する処理を
追加すると思います。多分 rwinp->data の非NULLチェックを
入れれば大丈夫かな?
でも根本的には「進む」と「選択」は機能を分けた方が良いのかも
しれませんね。

ところで、パッチ提供してくれた人のクレジットとかって
どうやって書くのが適当なんでしょう?

373:348
13/12/28 14:53:41.89 58qchT2I.net
>>372
ごめんなさい。もう一個、修正いいですか。
スレッドタイトル一覧画面で r で更新すると、← で戻れなくなる問題の修正パッチです。
(これもただのバンドエイドパッチです)
URLリンク(gist.github.com)

>>ところで、パッチ提供してくれた人のクレジットとかって
>>どうやって書くのが適当なんでしょう?
私もその辺の法律的(そして面倒)な問題は、なにが最善策なのかがよくわかりませんが、
個人的には何も書かなくて結構です。些細で適当なバンドエイドパッチですし。


文句言われない為の保険としては、よく見かける方法だと、
readme.txt 的なファイルに、協力者一覧のような項を作って、パッチやデバッグなどの協力者の名前を列挙しておき、
「この人たちが協力してくれました。ありがとうございました」とか何か適当に謝礼文でも添えとけば、それをしとけば、たぶん怒る人はいないと思います。

374:372
13/12/28 18:20:30.16 AeSXRH7E.net
>373
ありがとうございます
参考になりました
パッチは先行して出来るだけ早めにGitリポジトリに
マージします。(tgz提供は後日になります。)

375:372
13/12/29 01:09:03.54 UdiOTQrg.net
Gitリポジトリ(ソースフォージの)にパッチを適用しました。
協力者についてはhelpとREADMEでは名前(ID)の言及にとどめて
CONTRIBUTORSファイルを作成して詳しく記述してみました。
抜けがあったら申し訳ないです。
パッチについては一部変数の初期化値チェックを追加してあります。
よろしくお願いいたします。

376:348
13/12/29 14:03:31.50 RF+mh+rt.net
>>375
ありがとうございます。問題無く動作するようになってました。

377:login:Penguin
14/01/28 07:18:42.39 KwNCFuL4.net
ntchいいね。 fbvみたいにフレームバッファ時にサムネイルが表示出来たら最強かも。

378:375
14/01/28 22:54:27.38 B0Tjk7MV.net
>377
ありがとうございます
フレームバッファのサムネイル表示良いですね。
すぐには出来ませんが調べてみたらおもしろそうだと思いました

379:login:Penguin
14/02/08 16:09:22.39 2nrpuWSz.net
rdtsc読み込み①
~何か処理~
rdtsc 読み込み②

②-①で得られた値は、「何か処理」だけが消費したカウンタ値と考えて良いんでしょうkぁ?

380:login:Penguin
14/06/15 18:35:23.57 h4BYi3Oc.net
Windowsにもシステムコールはある
非公開だからアプリケーションプログラマが意識することが無いだけ
なんか残念な人みたいだが、まぁ頑張れ

381:login:Penguin
14/06/16 23:05:03.20 Ih/a7JcP.net
Wine+HSPがお手軽で便利だ

382:login:Penguin
14/09/01 18:03:28.40 WmZkmIrj.net
LinuxAPIと言われるとLinux特有のシステムコールを思い浮かべる
cloneとか

383:login:Penguin
14/09/02 11:34:44.07 brZZFtUP.net
スレリンク(tech板:697番)

これお願いします。

384:login:Penguin
14/09/02 19:50:35.22 WnHdmqu9.net
>>383
Linuxって弄るのが主目的で、基本的にプログラムの作成しない奴が使うものなんだよ。
だから、プログラムスレ過疎っているだろ
ユーザーの超少ないLinuxでプログラムしたいなら、WinやMacでも使っているもの(Qtとか)をつかわないと
レスは期待できない。 Win,Macプのレスに期待って感じ

385:login:Penguin
14/09/03 18:29:54.36 DDXQfX1y.net
>>383
FocusOut/FocusInイベントのmodeを見ればいい
ただしそれだとタイトルバーをドラッグした時も同じ挙動になるから注意

386:login:Penguin
14/09/03 19:21:42.40 F32MWqI6.net
>>383
"xlib イベント" で検索してみれば?
たとえば URLリンク(7ujm.net) とか
XNextEvent関数を呼び出して、引数として指定したイベント構造体の各メンバの値を調べるのが一般的らしい

387:login:Penguin
14/09/04 01:55:38.69 dA/Tho4c.net
>>385-387

わからないならレスしないでください。
正直ウザイです。

ひどい事を言うようですが、真剣に質問しています。

388:login:Penguin
14/09/04 02:49:40.80 FZlWKU2g.net
なりすまし乙

389:login:Penguin
14/09/07 08:52:02.66 taNFSCK4.net
[普及しないスレから移動]

ウィンドウ・サイズ変更時のドラッグ開始、終了イベントに関して、

URLリンク(tronche.com)

SubstructureRedirect と ResizeRedirect イベント

が関連してそうな気がする。

390:login:Penguin
14/09/07 10:33:43.54 taNFSCK4.net
たまたま見つけたが:

URLリンク(stackoverflow.com)

「If you set the override redirect flag when creating a window,
 then the window manager won't manage its size, position,
 stacking order, decorations, or map state (the window manager's
 redirection of ConfigureRequest and MapRequest is overridden).」

とある。override redirect flag を、window 作成時にセットしておくと、
window manager が、サイズや、位置、stacking(Z-Order、前後関係)、
map state(show, hidden)を勝手にいじらなくなるそうだ。

これを使えばウィンドウ枠をドラッグされた事を自分で検出すれば、
ドラッグされ始めたタイミングが分かるようになると思われる。
さらに、サイズ変更しない選択肢も可能になると思われる。

391:login:Penguin
14/09/07 10:56:04.88 taNFSCK4.net
混乱を招く元:

Win32 の WM_AAAA : WM は、Windows Message の略
X の WM_AAAA : WM は、Window Manager の略

392:login:Penguin
14/09/07 11:12:20.51 taNFSCK4.net
URLリンク(tronche.com)

↑の 4.2.9. Redirecting Requests に今の議題に非常に関係したことが
書かれているらしい。

SubstructureRedirect : サイズ変更時に親に通知されるイベント
ResizeRedirect : サイズ変更時に自分に通知されるイベント
ResizeRequest : Window Manager が送ってくるイベント


In particular, clients that need to take some special action if they
are resized can select for ResizeRedirect events on their top-level
windows. They will receive a ResizeRequest event if the window manager
resizes their window, and the resize will not actually take place.
Clients are free to make what use they like of the information that
the window manager wants to change their size, but they must configure
the window to the width and height specified in the event in a timely
fashion. To ensure that the resize will actually happen at this stage
instead of being intercepted and executed by the window manager
(and thus restarting the process), the client needs temporarily to set
override-redirect on the window.

393:login:Penguin
14/09/07 11:26:25.66 taNFSCK4.net
正しくはこうらしい:

SubstructureRedirectMask : マスク値
---> ConfigureRequest Event
   XConfigureRequestEvent 構造体


ResizeRedirectMask : マスク値
---> ResizeRequest Event
   XResizeRequestEvent 構造体

394:login:Penguin
14/09/07 13:51:23.01 taNFSCK4.net
>>392 のリンク先の4.2.9の続きの部分:

[Convention]

Clients receiving ResizeRequest events must respond by doing the following:

・Setting override-redirect on the window specified in the event.

・Configuring the window specified in the event to the width and
 height specified in the event as soon as possible and before
 making any other geometry requests

・Clearing override-redirect on the window specified in the event

If a window manager detects that a client is not obeying this convention,
it is free to take whatever measures it deems appropriate to deal with
the client.

395:login:Penguin
14/09/07 13:53:52.64 NGJ74wwz.net
>>394
どうもありがとう。

396:login:Penguin
14/09/07 13:59:45.87 taNFSCK4.net
・サイズ変更の動作を帰るウィンドウに ResizeRedirectMask マスク値を
 設定する。こうすると、ResizeRequest イベントが通知されるようになる。

・イベントハンドラに、ResizeRequest イベント がやってくる。
 これが欲しかったサイズ変更のドラッグ開始のイベントである。
 続けて、以下の処理を行う:

・override-redirect フラグを設定する。
 このフラグを設定することで ResizeRequest イベントハンドラが再帰的に
 呼び出されることを防ぐ。

・新しいWindowの幅と高さをConfigure系関数を使って設定する。
 普通であれば、ここで ResizeRequest イベントが再び発生してしまうが、
 今回は override-redirect フラグを設定してあるので発生しない。

・override-redirect フラグを解除する。

397:login:Penguin
14/09/07 14:01:48.32 taNFSCK4.net
誤:動作を帰る
正:動作を変える

398:login:Penguin
14/09/07 14:52:24.95 NGJ74wwz.net
URLリンク(standards.freedesktop.org)

これちょっと読んでみました。
MDIや仮想デスクトップを想定しているようです。
今回は、ちょっと関係なかったみたいです。

399:login:Penguin
14/09/07 14:58:16.73 NGJ74wwz.net
やっぱり、Windowsが使われる理由ってそれなりにあるんだなあ。

400:login:Penguin
14/09/08 14:48:29.88 XntPNMhE.net
「普及するわけない」スレで:

> 572 :login:Penguin:2014/09/07(日) 00:43:51.87 ID:NGJ74wwz
> >>569
> Qtはサポートしているイベントが明らかに少ないから。

の部分に関して。FLTKを調べていたら、Win32のWM_SIZEに相当する
イベントが見当たらないと思って(実はあるのかもしれない)調べていたら
test(サンプル)に resize.cxx と resizebox.cxx があって、ビルドして実行
してみると、TOP LEVELのnative Windowであっても枠をマウスでドラッグ
する事によるサイズ変更には一応対応していることが分かった。

401:login:Penguin
14/09/08 15:56:17.40 XntPNMhE.net
Qt や wxWidgetsのようなマルチプラットフォーム・ツールキットでは、
IME 関連の共通化は難しいかもなあ。
Windows では、WM_IME_xxxx 系のメッセージや専用 API で対応している
んだけど。

402:login:Penguin
14/09/08 16:35:46.77 XntPNMhE.net
>>400
スマン。Windows環境では、仮想関数のresize()が、WM_SIZE が来た時に
呼び出されるようなのでここでサイがズ変化した事を知ることが出来る
と思う。ただし、resize() 関数を直接呼び出すことも想定されている
気がするので注意が必要。普通、Windowsだと、イベント・ハンドラは
人間が直接呼び出すことは無いんだが、FLTK だとあるのかも知れん。

403:login:Penguin
14/09/10 07:57:01.06 uDuiy6kX.net
TCPソケットでサーバー書いてるんですが
select(2)の仕様に心が折れそうです
プロセスかスレッドに逃げてもいいすか?

404:390
14/09/11 02:27:57.31 Pq+DQ/be.net
さっき気づいたが、Windowsにできて X11 での実現方法が分かりにくい
Window関連の事柄は、WINE Emulatorのソースを見ればいいんじゃないかと
言う事。

サイズ変更のドラッギング中のメッセージ、Z-ORDERの変更を拒否または
独自仕様にする方法、OWNER WINDOW(OWNED WINDOW) の作り方、などは
どれも X11 での実現方法を見出すのは難しいが、WINE では出来ている。

TOP LEVEL WINDOW の場合は、WINE も X11 の native Window を利用して
いるはずで、独自にグラフィックで矩形を描画したりしているわけでは
ないはず。

なので、WINEで方法を知れば、そうそう大きくないソースで自前でも実現
できるはず。

405:390
14/09/11 10:52:01.00 Pq+DQ/be.net
Wineのソースを調べた。CreateWindowsExA() から沢山の関数呼び出しを辿って行った先に、
XCreateWindow() を呼び出している箇所を見つけた。

そして、XCreateWindow()の引数に設定するための attr や mask を計算する次のような関数を見つけた。
こんな感じで使われている:
mask = get_window_attributes( data, &attr );
・・・
data->whole_window = XCreateWindow( data->display, root_window, pos.y, pos.y,
                  cx, cy, 0, data->vis.depth, InputOutput,
                  data->vis.visual, mask, &attr );

なお、data->managed の値は、is_window_managed() の値に応じて切り替えられているらしい。

static int get_window_attributes( struct x11drv_win_data *data, XSetWindowAttributes *attr )
{
  attr->override_redirect = !data->managed;
  attr->colormap     = data->colormap ? data->colormap : default_colormap;
  attr->save_under    = ((GetClassLongW( data->hwnd, GCL_STYLE ) & CS_SAVEBITS) != 0);
  attr->bit_gravity    = NorthWestGravity;
  attr->backing_store   = NotUseful;
  attr->border_pixel   = 0;
  attr->event_mask    = (ExposureMask | PointerMotionMask |
                ButtonPressMask | ButtonReleaseMask | EnterWindowMask |
                KeyPressMask | KeyReleaseMask | FocusChangeMask |
                KeymapStateMask | StructureNotifyMask);
  if (data->managed) attr->event_mask |= PropertyChangeMask;

  return (CWOverrideRedirect | CWSaveUnder | CWColormap | CWBorderPixel |
      CWEventMask | CWBitGravity | CWBackingStore);
}

406:login:Penguin
14/09/11 12:36:11.29 RcyiahPu.net
初歩的な話でスマンが、X でも変更要求と変更通知のイベントはちゃんと分か
れているんだね。

前者が、XxxxRequest 系で、後者は XxxxNotify 系。
override_redirect を使わなくても「フック」出来るっぽいね。

で、XxxxReueset系のイベントは、他のウィンドウが状態変更系関数を(勝手に)
呼び出した場合のみに発生して、自分で状態変更系関数を呼び出した場合は発生
しない。なので、XxxxRequest系のイベントが来た時点で自分自身で状態変更系関数
を呼び出した場合は、同じイベントが再帰的に発生することは無い。

したがって、
他のウィンドウBがウィンドウAに対して状態変更系関数を呼び出す
--->Aに対してXxxxRequest系のイベントが発生
--->Aのイベントハンドラ到達
--->必要に応じて、パラメータを変えたりして同じ状態変更系関数を呼び出すか、
  または、呼び出さない。
--->呼び出した場合は、(好きなように)状態が実際に変わる。
--->Aに対してXxxxNotify系のイベントが発生


こんな感じかな。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch