TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
【2画面ファイラ】 mfiler4 その2
【視聴・録画】Linuxでテレビ総合16
Linux自体が斜陽...
くだらねえ質問はここに書き込め! Part 240
【視聴・録画】Linuxでテレビ総合16
☆ Linuxでこりゃ便利だなと思ったソフトって何?
Debian GNU/Linux スレッド Ver.93
デスクトップでLinuxが普及する必要はない
皆様、セキュリティホールは埋めとけよ
なにはともあれSLAX

Linuxプログラミング 2


1 :2010/02/13 〜 最終レス :2020/06/08
Linux(特有)のプログラミングに関する話題です
前スレ
http://pc11.2ch.sc/test/read.cgi/linux/1118024349/

2 :
Linux(特有)のプログラミングってったら
やっぱCUIの話だよね?

3 :
いや、LinuxでのプログラミングといえばOpenOffice.orgのマクロだろ

4 :
eclipseの使い方を教えてください。

5 :
NetBeans使ったらいいよ。

6 :
geditを使ったらいいよ。

7 :
重要な.hファイルをレビューしてくれる便利なスレ

8 :
ptraceの代わりになるやつって、いつになったら出るんだ?

9 :
systemtapで頑張る、じゃ駄目か?

10 :
LinuxだのWindowsだのって面倒だからさ、もうWebブラウザのCanvasにJavaScriptで出力すれば良いじゃん
一通り描画機能がそろっているから、何でもありだよ
テキストファイルで書けるし、携帯でもそのまま動く

11 :
>>10
フラッシュで良くね?

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

13 :
コンパイルオプションかmakefileの中身をみないと判らないかも…

14 :
>>12
一回make cleanした方が良くね?

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

16 :
/dev/ttyS0につながっているケーブルを
抜いて、再度接続するとLinuxってHUPシグナル
勝手に送ってくる?


17 :
>>12
FlexSDK使えばLinuxでもFlash作れんぞ
しかもタダで

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

19 :
>>18
eclipseとかanjutaとか使ってみたら。

20 :
>>18
gccは普通にコンパイル&リンクしてくれるぞ?
問題あるならエラー晒せよ
くだ質で

21 :
NetBeansつかってみなよ

22 :
いやです。ほかはともかく、そればっかりは・・・困るというか

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

24 :
>>23
linuxでprogrammingするならCをまず覚えたほうがいい
visualstudioっていうのはIDEとかだと思われるけど
だいたいvimやemacsのeditorで作業するのが一般的なんじゃないだろうか
だ.け.ど、あると思うよいっぱい
http://penguin.tantin.jp/mori/category/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%83%BBIDE.html
こういう所から好きなのを選ぶといい
選ぶというのは難しいことだけど
お勧めは分からない
僕はvimを使ってるから

25 :
俺も使い方覚えるのめんどいんでIDE使わずにEmacsだが
IDEが標準になるぐらいでないとよいGUIアプリは出てこないだろうな

26 :
あとgitとか覚えとくと便利かも

27 :
inode直接操作するプログラム
書きたいんだけど
ユーザ空間だけじゃ無理かな?

28 :
Linuxの共有メモリってshmatで帰ってくるアドレスが
作成した時と参照した時に違って帰ってくる。
内容はちゃんと合ってるんだけど(CentOS5.4 x84)
Solarisではアドレスも一致しているからポインタなん
かも共有しても安全なんだけどね

29 :
自己解決
SHM_REMAPってのがあった。
ちゃんと同じアドレスが帰って来ました。

30 :
>>27
FUSEではことたりない?

31 :
>>23
とりあえず、JavaScriptでFireFox用ゲームでも作っとけ

32 :
Ubuntu Weekly Recipe:第117回 UbuntuとEmacsでプログラミングをはじめよう(中編)|gihyo.jp … 技術評論社
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0117

33 :
そのページってコピペ反転できないんだが嫌がらせ?

34 :
>>33
普通に出来るけど、ブラウザ何使ってんの?w

35 :
C++でzipを解凍したいんだけど、zlibを使わないと解凍できないの?

36 :
ご自分で解析なさってライブラリを自作して下さい。

37 :
epollとpipeの組み合わせた
サンプルってどこかに無いでしょうか?

38 :
>>37
3日待て。

39 :
タイムアウト付きのflockってどうやって作ればいいんだろうか

40 :
C言語で。

41 :
>>39
sigintrrupt(SIGALRM, 1)をしてSIGALRMのハンドラを
設定しておき、alarmをかければEINTRでflockを設定時間後に
抜ける。 

42 :
>>41
なるほど。
スレッド使わない限りそれで大丈夫そうだな。ありがとう。
スレッド使うときはまた別の方法考えるか

43 :
Ubuntu10.4でコンパイルしたプログラムを
CentOS5.3で実行しようとすると以下のようなエラーが出ます。
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
Ubuntuにインストールされているglibcやglibc/glibcxxの方が新しいから、
というのは分かるのですが、
Ubuntu側で対応(コンパイルオプションを変更するなど)して
CentOSでも実行できるようなバイナリを作成することは可能でしょうか。

44 :
>>43
最終奥義staticとかどうよ

45 :
staticは剛の拳

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

47 :
書き忘れていました。そのプログラムは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
(参考: ttp://jarp.does.notwork.org/diary/200309a.html#200309081)
としてみたのですが、
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 :
>>47
glibcのスタティックアーカイブが必要なんじゃないかな、と思う。
*.aが入ったパッケージがあればstaticなバイナリが出来ると思うけど。
fedoraではglibc-staticってパッケージに入ってる。
ubuntuはしらん

49 :
>>47
むり。
# aptitude install gcc-4.1
して、そっちつかえ。

50 :
>>48
mainで始まるプログラムは-staticをつけてビルドできています
> not a dynamic executable
ので、スタティックアーカイブが不足している、ということは無いと思います…
(Ubuntuではlibc.aは libc6-devパッケージに含まれるようです。)
>>49
無理ですか…
ちなみに、本体のexecutableファイルをgcc4.4.2で-staticをつけてコンパイルし、
.soをgcc4.1でコンパイルしてCentOSで実行した場合、
使用されるglibcのバージョンがそれぞれ異なることになると思いますが、
この状況は問題があるのでしょうか。
(サンプルを作ってみた限りでは問題なく動作しているように見えますが)

51 :
メモリマップって何キロバイトずつ割り当てられるんだっけ?

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

53 :
SNMP+MRTG

54 :
>>52
wine

55 :
マジっすか?LinuxはそういうAPIが無いっすか?

56 :
>>52
man netstat

57 :
なんと。Linuxならこういうのは簡単だと思ったのに
Windowsより難しいとは。

58 :
それって,プログラム書く必要さえ無いんじゃないか…
(UNIX板じゃないんだからちゃんと教えてやれよ.)

59 :
普通はAPIなんて使わないね

60 :
何を使うんですか?Linux初めてなんで教えてくださいませ。

61 :
netstat

62 :
>>52
iptablesでSYNパケットがきたらULOGターゲットに飛ばすようにして、
ULOGターゲットから飛んできたnetlinkパケットを捕らえる
アプリケーションを作ればいいだろう。

63 :
>>52
wireshark のソースを読む

64 :
netstatのソースはないですかね

65 :
あった!
http://d.hatena.ne.jp/yasui0906/20080304/p1
これか

66 :
>>64
あるだろ。
Ubuntu なら apt-get source net-tools とか。

67 :
#include<net/tcp_states.h>
でエラーがでますお

68 :
とりあえず、ディストリとバージョン晒せ

69 :
Ubuntuの8.04のvmwareバージョンです。

70 :
とりあえず、エラーメッセージを一字一句もらさず正確に晒せ

71 :
コンパイルは
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 :
これ見たまんまじゃ?

73 :
なんか
gcc netstat.c -I /usr/src/linux-headers-2.6.24-28/include
とやったらコンパイルできました。

74 :
やばいっす。動きました。
とりあえずポートしか表示されませんでしたけど
IPアドレスも表示できればあとはログに落とせますね。
わーい。

75 :
次世代型ptrace ってなんだっけ?

76 :
-O2 -march=amdfam10 -m32 -free-vectorize で握ったzlibがバグありだこれ
報告すべきかすべきでないか…

77 :
どんな問題があるんですか?

78 :
ちなみにgcc-4.5ね
fedora使ってると、rpmの機能のかなりの部分が使えなくなる

79 :
Xウィンドウ実践技術講座 基礎から応用まで
代1版が92年だしやっぱり内容古いかな

80 :
ptraceの代わりになる予定のutraceって
いつになったら代わってくれるんだ?
誰が舵取ってんの?

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

82 :
>>81
Windowsもドライバーバグってたらきれいな青い画面が見れますよ

83 :
ドライバプログラミングの本って、グレー色の本?

84 :
お馬さんが有名です。

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

86 :
デバイスドライバと言ったらUSBドライバだよね。
この説明に多くのページを費やして詳述してくれているものがいいね。

87 :
最近だとみんなUSB-シリアルとして認識して通信するので意味ないわ・・・

88 :
低レベルの方の標準入力のファイルディスクリプタの定数って
どのヘッダに定義されてたっけ?

89 :
Linuxの場合はAPIとは言わないのですか?

90 :
GtkとQt
新しく勉強するなら どっちがいいですか

91 :
>>90
そりゃQtだろ・・・

92 :
すみません。
理由もあると助かります
どのディストリもGNOMEを採用していて、Qtは追加でインストールなんですけど
そういったことも含めてQtになるのでしょうか?

93 :
>>92
Qtの方が書いてて楽しいから。
あと、ドキュメントが一元で整備されてて更新頻度も高く
ライブラリも管理されているので割と安心できる。
日本語化された情報もかなり多い。
欠点は企業開発なのでノキアが死んだらつられて死ぬ
可能性がちょっと高いということか。

94 :
>>93
そのときは誰かが引き継いでオープンソース化するんでわないかと

95 :
きっとOracleが買い取ってくれるよ

96 :
Qtのライセンスが怖いですね。企業の利害がからむと特に。
Linuxですらもいくつもの訴訟をかかえているんでしょ?

97 :
>>96
怖いっていっても誰もあんたなんか相手にせんやろ

98 :
>>97が責任をとってくれるそうです。

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

100 :
久しぶりに声出してわろたwww

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

102 :
>>99
なにそれこわい
>>101
gtkやqtで判りやすいおすすめ日本語サイトあります?

103 :
>>102
いやいや、それがFUDってやつだよ

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

105 :
KUniqueApplicationって何するの?

106 :
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 :
関数名がreopenなんだから、現在のファイルを閉じて、再オープンしてるだけだと思うが。

108 :
fdの付け替えか。なるほど。

109 :
プロセスAが開いているソケットディスクリプタを、プロセスBにあげたいんだけど
どうしたらいいかな。

110 :
あの人のコンテンツただ乗り集団が画策するLLVMのビッグウェーブ(w が、
やってくるのに、まだGNUとか時代おくれすぎるだろ。

111 :
ただ乗りっていうか、アポーとかBSDの人がかなり開発に参加してるじゃん

112 :
これからはBSDの時代

113 :
プロセスAが開いているソケットディスクリプタを、
プロセスBで使いたいんだけど どうしたらいいかな。

114 :
>>113
ちょっとググっただけで、できそうな話は出てきたぞ
http://oshiete.goo.ne.jp/qa/2752265.html

115 :
リンク先のリンク先が飛べないな。って JM ってもう無いんだ。。

116 :
>>112
そうだな、Linux終了だな

117 :
>>115
http://archive.linux.or.jp/JM/html/LDP_man-pages/man2/recv.2.html
ここに引っ越してる
>>116
バーカ

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

119 :
>>115
引越し先はこっち。
http://linuxjm.sourceforge.jp/
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/recv.2.html

120 :
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 :
GUIのプログラミングって何でやってますか
言語とツールキット
若しくは
言語とライブラリ
を教えてください

122 :
さくっと書きたいときはQt Pythonで書いてるかな

123 :
>>122
QtでC++ってどうですか
GTKはできないらしいので

124 :
>>123
Qtは元々C++用に作られたライブラリだからC++で書いても問題ないよ
Pythonで書いても別にPython for Qt独自のの恩恵が得られることはない

125 :
>>124
ありがとうございます
参考になりました
安心してDLしたいと思います

126 :
>>120
> gdbmというソフトの中のndbm.hというヘッダの中にあって、
ヘッダだけ取り出してコピーしてはいけません。
gdbmというソフトをインストールしてください。
※ gdbmを正規の手続きで導入し、有効化していればdbm_*が使えるようになっているでしょうから『dbm_fetchがないというエラーが出ていました』とはならないはずです。

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

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

127 :
TCPやUDP通信で、recvやrecvfrom実行前に、対象ソケットに今受信しているデータ数を取得するにはどのようにすればいいんでしょうか?

128 :
>>127
getsockoptで調べる

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

130 :
>>129
man 7 tcp

131 :
>>130
なるほど!
ありがとうございました。

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

133 :
>>132
open関数おすすめ
オプションの全組み合わせを順番に試してみろ

134 :
>>133
ありがとうございます
試してみます

135 :
ソケットでFDが送れるとかおもしろいよね。

136 :
flock(2)でタイムアウトさせたいんだけどどうしたらいいかね?

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

138 :
flockって、だいたいロックした順に並んでるの?

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

140 :
flockでLOCK_EX

141 :
>>140
それでは実現できませんでした。

142 :
>>141
マジかよ。それ大ニュースだから。世界中で大問題になる。

143 :
>>141
本当なら全世界の6割のサーバで障害が発生するぞ!
今すぐ再現手順を明かすんだ!

144 :
>>139
こういう話?
p://linuxjf.sourceforge.jp/JFdocs/kernel-docs-2.6/filesystems/mandatory-locking.txt.html

145 :
共有メモリのアクセス高速化する方法教えて

146 :
>>145
排他しない

147 :
linuxプログラミング=シェルスクリプト
って理解でOK?

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

149 :
linuxでWindowに動画投影する一般的な方法って何?
できればWidget tool kitレベルのもんじゃなくて、
WindowsでいうDirect Showレベルの低水準なヤツ教えて。

150 :
mplayerあたりのソースを読めばいい気がする。
何にも無いところから再生できるから

151 :
やっぱそれしかないか。

152 :
デフォルトで無視されるシグナル
ってSIGCHLDとSIGWINCHしか無いの?
もっとほかにないの?

153 :
>>152
man 7 signal

154 :
>>153
それ見てたんだけどな

155 :
Pixmapを複数のウィンドウで使うことってできる?

156 :
出来るよ。
Screenをまたぐことはできないよ。

157 :
出来た
ありがとう

158 :
ロックファイルってどこに作るのが一番ロックですか?

159 :
/var/lock

160 :
実験用に、一時的にライブラリパスを 追加 するには
どうしたらいいんだっけか

161 :
LD_LIBRARY_PATHのことか?

162 :
Phalanger - The PHP Language Compiler for the .NET Framework
http://ja.wikipedia.org/wiki/Phalanger

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

164 :
>>158
/国技館

165 :
CGIはだめなの?

166 :
>>165
cgi以外がだめ

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

168 :
>>167
poファイルの事?
Emacsならpoファイルの編集モードで楽だけど。

169 :
>>167
gtranslatorはどうかな。

170 :
http://toro.2ch.sc/test/read.cgi/tech/1329023778/

171 :
exec*系の関数で二次元配列を引数として渡す方法ってありますかね
縦の要素数は場合によって可変なんですけど

172 :
>>171
むりだろ
基本的に引数で渡せるもんじゃないと

173 :
引数のバイト数に上限があったような希ガス

174 :
回答ありがたいです
char str[2][10];     /*str[0] = "-option" str[1] = "dirname" */
char path[] = "/bin/ls";
exechoge(path, str);
みたいな感じで使いたかったんです
他に方法を考えてみます

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

176 :
番兵でも入れるでそ

177 :
>>175
exec系のやつって結構種類があるので、それのどれかを使えればいいと思った次第です
うーん 難しい

178 :
シリアライズしてbase64でエンコードしてしまえ
二次元と言わずどんなに複雑な形式でも渡せる
両方自分で作るなら、適当にプロセス間通信してバイナリ
そのまま流し込んだほうが簡単じゃないかと思うが

179 :
>>178
いやそれは負けだろう。

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

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

182 :
char str[3]
でなくて
char *str[3]
が正しい

183 :
>>181,182
解りやすいアドバイスありがとうございます
参考にしてできました!

184 :
javascriptってみなさん何を使って書かれています?
emacs+js2-mode? それとも何かの開発環境でしょうか?

185 :
vim

186 :
javascript習得する時間より、vim習得する時間の方が長く掛かりそうな件

187 :
gedit

188 :
どもです。
vimとgeditですか。
javascriptでemacsはあまり人気ないのかな?
eclipse等も挙がるかなとも思いましたが、
まずはその二つのエディタでのjavascript関連を調べてみることにします。

189 :
そもそもプログラミングでemacsというのが・・・ねぇ・・・

190 :
Geanyという選択肢

191 :
emacsは環境。 /etc/shell に /usr/bin/emacs が入っているのは当然だ

192 :
エディタなんてどれでもたいして変わらんて。
目的で選ぶより自分の手に馴染んだものがいいと思うよ。

193 :
普通は端末で使えるエディタを選ぶだろ。

194 :
そうするとやっぱり MIFES for Linux 一択なのか。

195 :
>>194
Xが起動していないフレームバッファで動けば、MIFES foe Linuxを
購入するんだけどね。

196 :
http://www.cnn.co.jp/tech/30005772.html
http://downloads.element14.com/raspberryPi1.html
http://www.raspberrypi.org/
Linuxはこれで確定。

197 :
英国向けじゃないのか?
国内メーカーは何をしている?

198 :
日本企業だと、R4000で似たようなモンをつくって、20万ぐらいで売っとったなあ・・・。

199 :
>>197
ヒント。日本でそれを売れば+5000円ぐらいの手数料がつく。

200 :
>>196
楽天で売ってないだろ。
というかそもそも大人用は売ってないだろ。

201 :
ある期間の経過時間を測定する方法を教えてください。
dateコマンドなどで測定中にシステム時計を変更されても
そこそこの精度(約10ミリ秒)を保てる方法を探してます。

202 :
>>201
/proc/uptimeの1つめの値(単位 [秒])とか。

203 :
>>202
ありがとうございます。
dateコマンドに影響されないことを確認できました。
たいへん助かりました。

204 :
gettimeofday()が標準のような希ガス

205 :
>>204
それはもうオブラート?になるそうです

206 :
もしかして: ビブラート

207 :
clock_gettime(CLOCK_MONOTONIC) かな

208 :
>>207
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/clock_gettime.2.html
-------------------------------------------------------
CLOCK_MONOTONIC
  いくつかの開始点が指定されていないため、
  クロックがモノトニックタイムを設定したり表現したりできない。
-------------------------------------------------------
ここの日本語が意味不明でいつも考え込んでしまいます
MONOTONICの解説が来るべき所なのに何書いてんだろねこの人

209 :
glibcのfprintfってfopenしたディスクリプタに対して
スレッドセーフですか?

210 :
>>209
そのスレッドでしか触らないならセーフです

211 :
>>209
とりあえず手元のlibc.aを見てみたらvfprintf.oの中にlock unlockが入っているからセーフなんじゃなかろうか?

212 :
>>209
すげーいいかげんな基準だけど、POSIX.1-2001のgetc_unlocked()が
存在する環境においては、基本的にstdioはスレッドセーフティの確保のために
ロックを行っていると判断していいんじゃないかな
(WindowsのMSVCにも名前が違う似たような関数がある)
getc()のような関数で一文字単位でいちいちロックしてると
流石にパフォーマンスへの影響が馬鹿にならないので、そういう環境では代用に
↑のようなものが用意されてる(ことが多い)

213 :
>>209,>>212
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/pthreads.7.html
ここを参照すると良いと思います。

214 :
Cのソースをgrepするときにどこの関数の中でヒットしたかも
表示させたいんだけど、どうしたらよいでしょうか

215 :
>>214
grepではそんなことはできない。

216 :
>>215
では、そんなことが出来るプログラムはもうありますか?
無ければ作るが

217 :
>>216
簡単なものでよければ
awk '/^[_a-zA-Z]/{fn=$0}/foo/{print fn;print}' bar.c

218 :
>>216
無い

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

220 :
>>219
そこまで高度なことする気は無いよ
tagsと適当に合成して済ますつもり

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

222 :
プログラマなら皆んな光速で手を動かしてテストしてるよ
手が遅いのは甘え

223 :
>>222
光速で動かしても意味無いだろ
入力受け付けてすらもらえない
炎のコマで「1/60秒以上の速度で入力」とかあったけど
どう考えても応答速度を超えた入力は受け付けられない

224 :
>>221
Pythonなら標準でunittestってモジュールが入ってるよ

225 :
単体テスト用のフレームワークはよくあるけど、結合テストや総合テストは
見かけないね。
>>221は総合テストの合理的な手法を探しているんだろうね。

226 :
ないないない

227 :
>>223
敵はフレームルールだな

228 :
コマンドラインで動くものならシェルスクリプトが鉄板
自分で書け

229 :
最近、さみしので age

230 :
incronかわいいよ、incronって感じなんだけど、使いまくってる人いる?
信頼性がどれぐらいあるのか知りたい。

231 :
先にテストコードを書き、そのテストをパスすることを目指して開発する方法もある

232 :
ハードドライビインだな

233 :
ワラスww

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

235 :
すみません言語はCで書く前提です

236 :
ム板で聞いた方がいいんじゃね。

237 :
signalつかえ

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

239 :
外部プロセスを使いたいのなら2重にforkして1重目でSIGUSR1なんかを受け取るっててもあるんじゃないかな?

240 :
特定のスレッドにシグナルって送れたっけ?

241 :
pid=fork();
if(pid==0)execv("bin/func",NULL);
kill(pid,SIGUSR1);
って感じでおくれるよ

242 :
それはスレッドじゃない

243 :
>>242
じゃあ何になるの?

244 :
プロセス。

245 :
でもプロセスじゃないよね

246 :
いや、プロセスでしょ。

247 :
プロセスの定義による

248 :
Linuxプログラミングには謎が多い
どれもがプロセスとなり どれもがスレッドとなる

249 :
プロセスを無理やりスレッド化したから、謎的な実装になっただけ。
Linuxの実装ではスレッドは同一メモリ空間を共有する複数のプロセス
であってプロセスでも特殊なことをすればこれと同等になる。

250 :
一体『NTPL』とは何か

251 :
"The Deamon Load of the Process Table"

252 :
Linuxのメジャーなライラリーの分類や違い主な特徴を説明している
サイトて知りませんか?

253 :
何をするライラリーが欲しいのかくらい書いたら。

254 :
何をするライブラリーでメジャーなら分類の必要すらないな

255 :
各ライブラリーの特徴とかもしらないだけで、知っていたらそんな発言は
しないよな。

256 :
質問なんですがシャットダウン時にシェル実行するにはどうしたらいいですか?
CentOSです。

257 :
シャットダウン時にシェル実行しても速攻でkillされるんじゃね?
そもそもシャットダウン時にインタラクティブにコマンド実行する必要があるの?

258 :
そうですか…
シャットダウンをクリックしたらその日の合計使用時間をzenityで表示してからシャットダウン
っていうのをやりたかったんですが

259 :
使ってるウィンドウマネージャや統合環境にもよるだろう
GNOMEだと仮定するとこんなのが出てきた
http://library.gnome.org/admin/gdm/stable/configuration.html

260 :
>>258
ならシャトダウン時っつーかログアウト時じゃね?

261 :
http://www.rupan.net/uploader/download/1346247253.sh
画像ファイル名の一括リネームのスクリプトをベタ打ちで組んでみました
ここをこうしたほうがいい、などの意見を聞きたいので評価お願いします

262 :
> Error
> ERROR: ダウンロードパスワードが間違っています.
  _, ._
(;゚ Д゚)

263 :
ああ、パスはlinuxです

264 :
bwbasicですごいプログラムを書いてる人はいますか?いたらソースリストください。
私はデモプログラムに飢えている男です。

265 :
合計使用時間書き出してからシャットダウンコマンド呼び出すプログラム用意すれば

266 :
bwBasicって面白そうだな
これってゼビウスくらいなら簡単に作れるのかな

267 :
お前らはQtライブラリ使ってアプリ作ってる?

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

269 :
円は描けないのか?

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

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

272 :
Listlogを打ち込んだ記憶が懐かしい。まみりんとか。

273 :
> 一時的に止めてパラメータを捏造し再開できるのも特徴である。
> 行を挿入して途中から走らせることができるのも会話型言語の特徴である。
VS使えばC++でも出来るよね。

274 :
>>273
ソースが無いときっつい

275 :
javaじゃ駄目かい?

276 :
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 :
また、素の2.10のコードはlinux上でのビルドがやりづらいので、ビルドが簡単なようにautoconfまわりを修正しました。
ビルドに必要なツールは autoconf, automake, libtool です。
ビルド方法
./autogen.sh
make
これで、bwbasic バイナリーが作成されるので、そのまま ./bwbasic で実行できます。
例:
/usr/localへのインストールまでしたい場合は
./autogen.sh --prefix=/usr
make
sudo make install
です。

278 :
その他、git豆:
git pull とすると、(もしもコードに新たな追加が行われてた場合は)その追加分の差分データ分だけを自動的にダウンロードして適用できます。
ソースコードに変更を加えた場合、git diff とすることでパッチファイルの形で確認できます。
git diff > 差分ファイル とすることで、パッチファイルが作成できます。
このパッチファイルをメール等で第三者に渡せば、第三者は patch < 差分ファイル コマンドによって、その差分を適用できます。

279 :
>>276
× locale
○ locate

280 :
>>277
× ./autogen.sh --prefix=/usr
○ ./autogen.sh --prefix=/usr/local

281 :
autogenとかautoconfigとかcmakeとか全然わからん。
引退したほうがいい?

282 :
そこでスクリプト言語ですよ

283 :
Linuxプログラミングを仕事でやることになり勉強したいのですが、
これは読んどけって本ありますか?
カーネルをいじったり、デバイスドライバ書いたりします。

284 :
お前には無理

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

286 :
>>283
USBのHIDのデバイスドライバーの場合なら
linux/Documentation/hid/*
linux/drivers/hid/*
git clone git://github.com/gregkh/usb_tutorial.git
が参考になる。

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

288 :
>>283
読む余裕があれば、
・Linuxカーネル解析入門 (I・O BOOKS) 平田 豊
・Unix/Linuxプログラミ&#8203;ング理論と実践 Bruce Molay
・Linuxデバイスドライバプログラミング 平田 豊
基礎は身に付く。後はオライリーの本をリファレンスにひたすら実践。

289 :
>>287
いつでも直せると思っていたら、書き込みプログラム自体に不具合があって
直せなかったなんて恐ろしいことが…
# 俺はこっそり直して乗り切ったが

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

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

292 :
>>291
リーナス氏が学生時代からクリティカルな処理を書いていたのは事実だけど、
彼はプログラムの信頼性に対して執着心が強いでしょう。意固地なくらい。
先日も、Linuxカーネル周りの開発に携わっているレッドハットのPGが
信頼性を軽視する発言をして、それに対しリーナス氏は発狂してそのPGが
カーネル開発から外されそうになった。
無責任なPGが書いたプログラムに大切な秘蔵データが消滅させられたらたまらない。

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

294 :
↓秘蔵データ
((: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 :
>>292
ありゃユーザランド至上主義な話であって
信頼性がどうこうじゃない気もする

296 :
LinusのすぐF-word口にするくせなんとかならんの?
性別の単語の違う意味よりももっともっと汚い単語を公けの場でいうのはちょっと…

297 :
>>296
公の場ではないので、うんこちんこ言っていけない理由がない。

298 :
>>297
でもメーリングリストとか公開されてんじゃん

299 :
2012年6月18日 Linusが吠えた! ─中指立てて「NVIDIAは世界最悪の企業」
ttp://gihyo.jp/admin/clip/01/linux_dt/201206/18

300 :
>>298
公開されてる場が全て公共の場であるとでも?

301 :
何が違うの?

302 :
>>301
公開されているが公共ではない場所もあるということだ

303 :
人はそれをプライベートオープンとゆう。
英語のほうがわかりやすい。

304 :
>>303
> ゆう
わざとだったら揚げ足ゴメンネ
素でやってるならいつか恥じかくかも知れないから
今のうちに指摘しておくよ
いう (言う)
ただのお節介だから反応はしなくていい

305 :
ゆうちゃん

306 :
>>304
謝らなくても良いから早く死んでね&#x2665;

307 :
>>306
> &amp;#x2665;
わざとだったら揚げ足ゴメンネ
素でやってるならいつか恥じかくかも知れないから
今のうちに指摘しておくよ
&amp;#9829;
ただのお節介だから反応はしなくていい

308 :
    

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

310 :
    

311 :
>>309
バカかお前。
「はじらい」で変換してみろ!

312 :
        

313 :
┐(´д`)┌ヤレヤレ

314 :
はなししって? を思い出した

315 :
<http://www.mext.go.jp/b_menu/hakusho/nc/k19730618001/k19730618001.html>
内閣告示第二号
送り仮名の付け方
一般の社会生活において現代の国語を書き表すための送り仮名の付け方の
よりどころを、次のように定める。なお、昭和三十四年内閣告示第一号は、廃止する。

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

316 :
>>290
事前に希望する周波数の矩形波サウンドファイルを作っておけばいいじゃん

317 :
>>316
どのくらいの長さのを作るつもりなの?
ループ再生は綺麗に出来ないけどどうするの?
そういうところに思い至らないのはなんで?

318 :
>>317
4G位作っとけば当分使えるんじゃね。映像の入ってるDVDでさえそんなもんだし
足らないなら64ビット環境にしろ

319 :
amsynthのソースから
Dual oscillators with classic waveforms - sine / saw / square / noise
この辺りをかっぱいで来ればいいんじゃね?

320 :
jaaaで周波数指定して出せたはず

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

322 :
おまいら自分しか使わないソフトウェアでも
Autoconf、Automake、その他 AutoXXX を
使ってる?
おいらは面倒くさいからマクロ使いまくりの
Makefileを使い回してる

323 :
Qtじゃないのか?

324 :
Javaじゃないのか?

325 :
もばいるうぃふぃるーた使ってると
全部jsで書いてるやつが絶望的すぎて
この文化滅びねえかなあ

326 :
全部jsで書くとすっごい楽

327 :
>>322
使ってるよ
Autotoolsは便利よ

328 :
makeはわりと機能が制限されるし
配布するならconfigure使えた方がかっこE

329 :
2ch専ブラの開発を始めて見ました
今のところ閲覧専用ですが、
試しても良いという方がいましたらよろしくお願いします
ttp://sourceforge.jp/projects/ntch/simple/
git clone git://git.sourceforge.jp/gitroot/ntch/develop.git

330 :
ほぉ。コンソール版とはおもしろい。

331 :
板名でスペースしたらコアダンプした
さすがC

332 :
試して頂いてありがとうございます
もし可能でしたらコアダンプの内容をソースフォージの掲示板か
ブログのコメントに貼り付けて頂けないでしょうか
ソースフォージ掲示板
ttp://sourceforge.jp/forum/forum.php?thread_id=34565&forum_id=31402
ブログ
ttp://neetchan.on.arena.ne.jp/app-def/S-102/wp/?p=745

333 :
>>329
debパッケージ化して配布すれば使ってくれる人が増えるはず(ウブンツとか

334 :
>>333
youがやりなよ

335 :
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 :
失礼
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 :
パッケージと言わずとも.configureがあったほうがいいわな
まあ現時点の規模では微妙だが
2chブラウザとしては
CUIだからってサクサクでもなんともねえしかえって不都合が増える
このスレ探してみるだけでかなりの労力を使った
CUIが好みならnavi2chとかのほうが便利だし
学習用でのみ許される

338 :
とりあえず使ってみた。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 :
>333
パッケージ化はやりたいですね
だけど、今のところ普通の機能で無いものが多いのでそこまで辿り着けそうに無いです
>334
本当に、協力してくれる人絶賛募集中です。現在SSLに苦戦中
>331
本当に色々検証して頂いてありがとうございました。
swpファイルとシェルは修正します。最適化オプションは外さないで済めば
その方がいいんですが、外すしか無いですね...
現状微妙なのは仰るとおりです。navi2chも見てみましたが高機能そうです
ただemacs使ったことない(恥)
linuxの2chブラウザーというとJDしか使って無かったです。
とはいえせっかく作り始めたので納得のいくところまでは完成させます
いまのところ絶対に入れたいのは
1.書込(多分●も対応)
2.読込履歴
3.お気に入り(板、スレッド)
漠然と入れたいと思っている物
しおり(レス番合メモ)、自レス判定
正規表現検索、スレッドの並べ替え
yum apt対応
とにかく、レス頂いてありがとうございました

340 :
>338
ありがとうございます
スレ最後の位置は確かにおかしいですね。ただちょっと
うまく直せないでいます
autoconfやってみます(使ったことなかった)

341 :
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 :
訂正
bキーでどのくらい戻れるかはスレによって違う。

343 :
>341
情報ありがとうございます。
ヘッダーはautoconf使うとエラーにならなくなるのかもしれません
いまちょっと調べています
bキーに関してちょっとこちらで現象が再現できませんでした
現象の起きるスレがわかると解決できるかもしれません
そろそろスレを占有しすぎかもしれないでの
>332の掲示板やブログのコメント欄もよかったら使って下さい

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

345 :
>344
再現しました。画面の大きさによって起きるみたいです
ありがとうございました。

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

347 :
ありがとうございます。参考にします

348 :
使用言語:C言語
目的:キーボード入力を読み取る(キーのプッシュ・リリースも読み取りできるように)
/dev 以下に存在するデバイスから、キーボードデバイスを検索して int fd = fopen() する方法がわかりません。
(キーボードデバイスを探す為の具体的な方法がわかりません)
これを判定して検索する為の便利な関数や、定形的な方法はあるのでしょうか。

349 :
>>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 :
私も以前CUI上で2ちゃん見るための簡単なツールを作って使ってましたが、実態としてはwgetのラッパに過ぎないおもちゃですw
ttps://github.com/takeutch-kemeco/ls2ch
一方、ntchは作りが本格的なので(ちゃんとsqliteとか使ってるし)、
今後CUIで2ちゃん見たくなった際はこちらを使わせてもらおうと思いました。

351 :
navi2chでええやん

352 :
rawモードじゃダメなんかい?

353 :
>349
使って頂いてありがとうございます。設定修正してみます。
(環境関係の設定が未だ良くわかってませんが...)
ls2ch使ってみました。
flexとbisonの追加インストールで問題なくビルド完了しました(Fedora19)
最初ちょっと使い方がわからなくて戸惑いましたが、
コマンドのパラメーターで現在の閲覧状態をコントロールしてるんですね
これならシェルからsed awkで操作するようなスクリプトも書けますね
UNIX系はこう言うスタイルのほうが流儀にあってるのかなぁ
autoXXX系のツールを使いこなしてらっしゃる様でうらやましいです。
autoconfの公式のpdfを読んでみましたが、最初の方のページだけ読んで放置状態です
(英語超苦手。でも勉強したい)自分に必要なのはいきなり細かい説明じゃなくて
オライリーの本みたいに体系的に解説してくれる本なんだけど...

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

355 :
>>348
<sys/ioctl.h> ioctl()がデバイス関連
read(),write()などの統一されたインターフェースから、
はみ出した部分
Windowsみたいに、GUIプログラミングで、
キーボードイベントを取ればよいのでは?
GUIプログラミングしてないの?

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

357 :
>>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 :
ntch:
(なお、c,j,k,スペース を用いての移動には問題は起きてません。認識しなくなるのはカーソルキーだけのようです)
また、非X11上ではこの問題は起きないようです。(生ターミナル上のfbterm上でテストした場合はカーソルの問題は生じませんでした)

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

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

360 :
IDEはアンジュタかな?

361 :
>>348 >>355-356
端末上で、コマンドでのリアルタイムキー入力なら、
stty raw -echo
で、バッファリングとエコーを無くせる
ただし、使った後は、端末の設定を元に戻すこと
そうしないと、端末がおかしくなる
もし端末がおかしくなったら、
Ctrl-J、stty sane、Ctrl-J、と入力する
この入力も端末に表示されないが、これで端末が元に戻る
それと、ddで、押されたキーを取得する

362 :
その方法ではキーボードデバイスの正確なキー情報を得るには不十分なのではないでしょうか。
なぜなら、この方法では左右Shift,Alt,Ctrl等の違いを判別できそうにありません。
また、キーを放した際の情報も得られそうにありません。
また、Cならば普通はこれはtermiosで行なうことだと思います。
そしてtermiosだけではキーボードデバイスの正確なキー情報を得るには不十分です。

363 :
行ないたいことは、それが本当にキーボードデバイスなのかを判断したいということです。
キーボードデバイスを直接読む為に/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 :
このあたりの、/proc/ファイルから、
キーボード情報を取れないか?
IRQ(Interrupt Request) 割り込み要求
割り込みコントローラ
cat /proc/interrupts
I/Oアドレス、ポート
cat /proc/ioports
DMA(Direct Memory Addressing)
cat /proc/dma
PCIバス、PCIデバイス
lspci

365 :
Linuxカーネル解析入門、平田豊、2011
という本によると、PCIの仕様書は、
PCI SIGという団体が管理していて、有料らしい
PCIコンフィグレーション空間に、
デバイスの種類や機能を示す、クラスコードというのがある
基本クラス[base class:0Bh]、サブクラス[sub class:0Ah]、
プログラミング・インターフェースクラス[programing interface class:09h]
基本クラスで関係ありそうなのは、
00h クラスコードが定義される前の、古いデバイス
09h Input devices
この09hで、サブクラスの値で、マウスとKBが判別できるかも?
これら以外は、udev関連かな?

366 :
>362
> 左右Shift,Alt,Ctrl等の違いを判別できそうにありません。
思い込みで書くなよ... つか、xev のソースでも見れば?

367 :
2chブラウザー(ntch)に同期機能を付けてみました
https://sourceforge.jp/projects/ntch/releases/60136
以下で実験用のサーバーを稼働していますので、良かったら試してみて下さい。
https://neetchan.securesite.jp/account/create_user.php

368 :
全板検索からお気に入りに追加できないです

369 :
>>368
ありがとうございます
機能リクエストチケットというのを登録してみました
https://sourceforge.jp/ticket/browse.php?group_id=8794&tid=32665

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

371 :
378が起きないように修正する、バンドエイド的な修正パッチ書きました。
https://gist.github.com/takeutch-kemeco/8155579
これでとりあえずれレバガチャしても大丈夫なようにはなりますが、
ソース全体をまじめに検証したわけではないので、(ただの適当なバンドエイドなので)
これによってnt_read_thread()等の動作に変な副作用が生じてしまうか等は、なにも調べてないです。

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

373 :
>>372
ごめんなさい。もう一個、修正いいですか。
スレッドタイトル一覧画面で r で更新すると、← で戻れなくなる問題の修正パッチです。
(これもただのバンドエイドパッチです)
https://gist.github.com/takeutch-kemeco/8156110
>>ところで、パッチ提供してくれた人のクレジットとかって
>>どうやって書くのが適当なんでしょう?
私もその辺の法律的(そして面倒)な問題は、なにが最善策なのかがよくわかりませんが、
個人的には何も書かなくて結構です。些細で適当なバンドエイドパッチですし。

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

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

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

376 :
>>375
ありがとうございます。問題無く動作するようになってました。

377 :
ntchいいね。 fbvみたいにフレームバッファ時にサムネイルが表示出来たら最強かも。

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

379 :
rdtsc読み込み@
〜何か処理〜
rdtsc 読み込みA
A-@で得られた値は、「何か処理」だけが消費したカウンタ値と考えて良いんでしょうkぁ?

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

381 :
Wine+HSPがお手軽で便利だ

382 :
LinuxAPIと言われるとLinux特有のシステムコールを思い浮かべる
cloneとか

383 :
http://peace.2ch.sc/test/read.cgi/tech/1303113996/697
これお願いします。

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

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

386 :
>>383
"xlib イベント" で検索してみれば?
たとえば http://7ujm.net/X/event.html とか
XNextEvent関数を呼び出して、引数として指定したイベント構造体の各メンバの値を調べるのが一般的らしい

387 :
>>385-387
わからないならレスしないでください。
正直ウザイです。
ひどい事を言うようですが、真剣に質問しています。

388 :
なりすまし乙

389 :
[普及しないスレから移動]
ウィンドウ・サイズ変更時のドラッグ開始、終了イベントに関して、
http://tronche.com/gui/x/icccm/sec-4.html
SubstructureRedirect と ResizeRedirect イベント
が関連してそうな気がする。

390 :
たまたま見つけたが:
http://stackoverflow.com/questions/8867715/xlib-center-window
「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 :
混乱を招く元:
Win32 の WM_AAAA : WM は、Windows Message の略
X の WM_AAAA : WM は、Window Manager の略

392 :
http://tronche.com/gui/x/icccm/sec-4.html#s-4.2.2
↑の 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 :
正しくはこうらしい:
SubstructureRedirectMask : マスク値
---> ConfigureRequest Event
   XConfigureRequestEvent 構造体

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

394 :
>>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 :
>>394
どうもありがとう。

396 :
・サイズ変更の動作を帰るウィンドウに ResizeRedirectMask マスク値を
 設定する。こうすると、ResizeRequest イベントが通知されるようになる。
・イベントハンドラに、ResizeRequest イベント がやってくる。
 これが欲しかったサイズ変更のドラッグ開始のイベントである。
 続けて、以下の処理を行う:
・override-redirect フラグを設定する。
 このフラグを設定することで ResizeRequest イベントハンドラが再帰的に
 呼び出されることを防ぐ。
・新しいWindowの幅と高さをConfigure系関数を使って設定する。
 普通であれば、ここで ResizeRequest イベントが再び発生してしまうが、
 今回は override-redirect フラグを設定してあるので発生しない。
・override-redirect フラグを解除する。

397 :
誤:動作を帰る
正:動作を変える

398 :
http://standards.freedesktop.org/wm-spec/1.3/ar01s04.html
これちょっと読んでみました。
MDIや仮想デスクトップを想定しているようです。
今回は、ちょっと関係なかったみたいです。

399 :
やっぱり、Windowsが使われる理由ってそれなりにあるんだなあ。

400 :
「普及するわけない」スレで:
> 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 :
Qt や wxWidgetsのようなマルチプラットフォーム・ツールキットでは、
IME 関連の共通化は難しいかもなあ。
Windows では、WM_IME_xxxx 系のメッセージや専用 API で対応している
んだけど。

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

403 :
TCPソケットでサーバー書いてるんですが
select(2)の仕様に心が折れそうです
プロセスかスレッドに逃げてもいいすか?

404 :
さっき気づいたが、Windowsにできて X11 での実現方法が分かりにくい
Window関連の事柄は、WINE Emulatorのソースを見ればいいんじゃないかと
言う事。
サイズ変更のドラッギング中のメッセージ、Z-ORDERの変更を拒否または
独自仕様にする方法、OWNER WINDOW(OWNED WINDOW) の作り方、などは
どれも X11 での実現方法を見出すのは難しいが、WINE では出来ている。
TOP LEVEL WINDOW の場合は、WINE も X11 の native Window を利用して
いるはずで、独自にグラフィックで矩形を描画したりしているわけでは
ないはず。
なので、WINEで方法を知れば、そうそう大きくないソースで自前でも実現
できるはず。

405 :
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 :
初歩的な話でスマンが、X でも変更要求と変更通知のイベントはちゃんと分か
れているんだね。
前者が、XxxxRequest 系で、後者は XxxxNotify 系。
override_redirect を使わなくても「フック」出来るっぽいね。
で、XxxxReueset系のイベントは、他のウィンドウが状態変更系関数を(勝手に)
呼び出した場合のみに発生して、自分で状態変更系関数を呼び出した場合は発生
しない。なので、XxxxRequest系のイベントが来た時点で自分自身で状態変更系関数
を呼び出した場合は、同じイベントが再帰的に発生することは無い。
したがって、
他のウィンドウBがウィンドウAに対して状態変更系関数を呼び出す
--->Aに対してXxxxRequest系のイベントが発生
--->Aのイベントハンドラ到達
--->必要に応じて、パラメータを変えたりして同じ状態変更系関数を呼び出すか、
  または、呼び出さない。
--->呼び出した場合は、(好きなように)状態が実際に変わる。
--->Aに対してXxxxNotify系のイベントが発生

こんな感じかな。

407 :
誤:他のウィンドウ
正:他のクライアント
クライアント=プロセス
の意味っぽいね。

408 :
質問者はまだいるのかな。

409 :
>>403
epollより楽だと思う

410 :
ここはググレ無い人が書き込むと叩かれるスレですか?

411 :
違いますよ

412 :
>>410
おいらは絶対叩かないが、2ch全般に叩く人がいるので、それを止める事は
出来ないと思う。「聞くは一時の恥」を真っ向否定するような掲示板だ。
調査結果によると、2chは低学歴な人が多いらしいが、人を馬鹿にしたり
意外な意見を全否定したりすることが勉強を出来なくしてきたのかも知れ
ないと思う。自分の周りを見て経験的に馬鹿が多いので「馬鹿」とすぐ言って
しまうとかも考えられる。2chを見ていると、
 「自分がよく言われている事を人に言う」
という法則はつくづく正しいと思う。

413 :
>>412
あなた人の話を聞く耳持たないですやん

414 :
>>413
聞く価値がなければ聞かないが、価値があれば聞く。
どんな意味の薄い話でも全部フォローしろというのは自分勝手な意見だよ。

415 :
>>412
言ってることにはだいたい賛成だが学歴を引き合いに出してるところがちょっと痛い

416 :
雑談はよそでやっとくれよ。

417 :
大部分の雰囲気は、2chの管理サイドの人間が作り出している。
実際に2chで質問に答えている一般人は非常に小数で、ほっておくと
掲示板として成り立たなくなるため、人を雇って質問に答えさせている。
そしてその人たちは一般人の振りをしてIPアドレスにもとづいて好き勝手に
反論を繰り返したりしている。
時々、すれ違いだとか>>416のような書き込みがあるのは、管理サイドの
人間の都合によっている。
日本のほとんどの掲示板は、「ですます調」で話されているのに2chだけが
「ため口」なのも、管理サイドの人間がそうしているからである。「ですます調」
で話す人間がいると攻撃対象にするため、どうしても「ため口」ばかりになる。
これは、管理サイドの人間の生まれや育ちが「ですます調」の人間に支配される
側であったことと関連しているように思える。なので「ですます調」口調の人間
には悪意を抱いてしまうのだろう。

418 :
いや、おれ管理サイドなんかじゃないよ。
言っても信用しないだろうけど。

419 :
仮定に仮定を重ねてて統失みたいになってんな

420 :
文節の途中で改行する長文はスルーでおk

421 :
>>414
あんたの激しい思い込みのせいで、どう考えても客観的事実として明らかなことが「聞く価値がない」と断定されてしまっているケースを何度も見てるんで、
あんたはもっと自分の考えを疑って他人の言っていることが正しい可能性も検証したほうがいいよ
JavaがC++の1000倍メモリ食う、なんてのは明らかに客観的事実と反してるから
価値があるかないかを判断するのが自分である以上、下手に自分は正しい他人は間違ってると断じて耳をふさいでたら、
事実を受け入れられない裸の王様になる可能性が高いのはさすがに京大卒だったらわかるだろ?

422 :
>>421
京大卒?

423 :
>>421
あんたは、自分が信じられないような結果が出たら信用できないだけ。
歴史上そういうことは何度もあった。

424 :
>>421
実験したら、必ずJavaがメモリ大食いな事は証明できる自身があるから、
言ってるだけだ。自分の人生はいつもそうだった。
まず最初は、人が信用しない ---> 面倒だから放置
---> 後で詳しく実験 ---> 実際にそうだったので否定していた人も認めざるを得なくなる
こうなるのが目に見えているが、実験するのは貴重な時間の浪費になるだけなのでしないだけだ。
人に信じてもらっても何も得することはないから。

425 :
もうかまうな。

426 :
Jazelleがあるから今時ならC++の方がずっと食うだろうに

427 :
>>426
デタラメ注意

428 :
>>423-424
そうだよ。信じられないようなことを言ってる奴が居るから信用できないだけ。
データを出せば信用するかもしれない、と言っているのに、データを出さないんだから信用できなくて当然。
人に信じてもらっても得することはない、と言うのなら、その事実は自分の心の中にしまっておけよ。他人を説得できるほどの客観性を持ってないことを言い続けるのは妄言にほかならないだろ。
現状、何もデータも検証方法も示さずにJavaのメモリ使用量の話をするのは、「STAP細胞はあります」と同じレベルの真実味しかないよ。

429 :
>>428
あなたに納得できる検証方法がないからと言って、間違っているというわけではないんだよ。
こちらの中では、まず間違いないと確信しているレベルには達している。
なんというか信仰心のある人は、根本的には嘘付かない。
なので、STAP細胞関係者とは全く異なる話になる。

430 :
>>429
誰もお前が正直者かどうかも分からないし
スキルがどの程度で本当に分かっていっているのかもわからない
だから>>429の内容は意味ないよ

431 :
>>429
再現可能な検証が出来ないのであれば
その仮説が正しいか正しくないかは誰にもわからないはずだが。

432 :
>>429
「こちらの中では間違いないと確信いているレベル」←STAP細胞も小保方氏のなかでは確信してるだろう
「信仰心のある人は嘘はつかない」←STAP細胞も小保方氏は嘘をついているつもりはないだろう
ということで、同じだよ。
あんたが嘘つきだ、正直者でないと人格を否定しているわけではなくて、検証方法や確信するまでの論理展開がおかしいんじゃないの、と言ってるだけにすぎない。
つまり、あんたがどの程度確信しているかなんて他人には無意味なんで、客観的に評価できる方法やその結果を提示してくれ、って言ってるのが理解できないのかな。
そこがわからない限り、>>413であんたに>指摘した「人の話を聞く耳を持たない」という状態だよ、あんたは
どんだけ自分がこれは真実だろうと確信していたところで、その確信なんて結局脳内の妄想が暴走した結果に過ぎない可能性がある。
その可能性を排除するために、科学的、工学的には、検証したい仮説が間違ってるかもしれない、と幅広い条件でテストする検証手順があるわけだろ。
その検証手順を「目に見えてるから貴重な時間の浪費になる」と省いてるくせに、「これが真実なんだ」と吹聴して回るのは、疑似科学や宗教の類と全く同じ構造。

433 :
小保方は単なるうそつき。
事件を起こした女の内、自白した人はほとんどいない。
カレー砒素事件の林真澄もいまだに自白はない。自分の子殺しの犯人も
自白してないはず。
小保方本人も確信していたわけではなく、うそ付いている自覚があってやって
いたのに自白しないだけ。

434 :
>>432
オイラは間違いが少ないタイプなんだよ。

435 :
おっと、「確信したものに関しては」という但し書きが必要だけどもね。

436 :
まあ、何を言われようが人生の貴重な時間を、他人に信じてもらうためだけ
に浪費するのは御免だ。
各自がちゃんと実験してみれば分かることだ。

437 :
>>433-436
あんたが間違いが少ないと主張したところでこっちはそれを確かめる手段は何もないし、
他人に信じてもらえなくてもいいのならチラシの裏にで書いてろよ。ネットに書き込まなくたっていいだろ。
つーか、「他人に信じてもらえなくてもいい」というのはコミュニケーションの拒絶であって、「人の話を聞く耳を持たない」と同じってことがわからないのかな。
結局あんたは井の中の蛙ってわけ。

438 :
オイラの名前と経歴を知ってたらそんなこと絶対に言えないよ


って言い出すに100ペリカ

439 :
>>434自体がその少ない間違いのうちの一つ

440 :
>>439
それは本当にそうだね。自分で「自分は間違いが少ない、優秀だ」とこっそり思ってるぐらいならともかく、こんなところで公言して信頼を得ようと思うような人は
どう考えても客観的に自分を見てない。

441 :
http://blog-imgs-24.fc2.com/a/p/g/apg/1299728855579.jpg
だったか

442 :
一般的にGUIの座標系は左上が原点になっています。
XlibでRTL環境の場合、座標系はミラーリングされますか?

443 :
RTL環境、例えばロケールをサウジアラビア、アラビア語などに設定した場合の
スクリーンショットがどこかに有ったら教えてください。
http://www.langbox.com/images/xlng_img.gif
この程度のものは見つけたのですが、古すぎるせいか、RTL環境になっていません。
RTL環境では、例えば、ボタンの「はい」と「いいえ」でも配置が逆になります。
スクロールバーは通常左に配置されます。
そうなっているスクリーンショットを見たいのです。

444 :
http://distrowatch.com/images/cgfjoewdlbc/arabian.png

445 :
>>444
どうも。
ブラウザはRTLになっているのに、デスクトップは文字の表示すらまともにできていないですね。
arabian.pngという名前から考えて、一番RTL出来てるぽく見えるスクショをとったんだろうけど。
やはり、アプリケーション側で個別に実装するしかないのかな。
WindowsはミラーリングとコントロールのRTL化で過去に作られたLTR製品も勝手に
RTL対応になった経緯があるのですが、Linuxではそういうことしないのですかね?
ミラーリングも良し悪しで、本格的にRTL化しようとすると、頭が混乱しますが。

446 :
一般ユーザが使えるRAM disk的なものってありますか?

447 :
>>446
tmpfs

448 :
ありがとうございます。私の環境だとroot持っている人の裁量次第かも。

449 :
>>448
ああ、一般ユーザってそういう。
そりゃ一般ユーザが勝手にメモリを大量に消費しちゃアカンよね。

450 :
windowsもバカ!だがubuntuを始めlinuxもただだけでバッカ!!
素人を騙してPCを買わせているが、災害が起きたらタダのガラクタ!
つまらん物に時間をかけるのでは無く、基本の大事な人との出会い、話し合い
が本物、こんなバカタレPCは破棄し、最先端と言って洗脳され
PCや製造企業に支配されてはならん!
本来の人間社会を取り戻せ!

451 :
春だね

452 :
一理あると思うんだよね
バーチャルな世界で生きていくのはそれなりにストレスがかかるし、なにより生き物らしくない感じがするよ

453 :
日本中で税金を使って、やっている災害時対策は、
電気が止まると、何もできない

それを知っているけど、官僚と、
ゼネコンなど官僚の取り巻き連中は、
税金を使いたくて、しょうがない

税金を使わずに残すと、自分達の権力が減るから、
絶対にそのことを、大衆のブタどもには教えない

本当は、予算は半分以下でも十分。
橋下がそれを民衆に教えようとしたら、
自公民などの既成政党は、必死に隠そうとする。
既成政党も官僚の手下だからだ

大阪はひどい。無人の市営バスが走り回る。
運転手の給料は一千万円

誰も渡らない、歩道橋ばかり作っている。
既成政党はそれらを、必死に隠す

454 :
>>409
epollわからんのでスレッドにしました

455 :
Linuxの非同期入出力は、同時に複数のスレッドで処理されないからね。
複数のスレッドで処理するように書いても、同時に実行権を得ることが無い。
ちょっと改善してほしいよね。
コアの数だけ同時に実行できた方が良いと思う。

456 :
すみません。何か足りないのだと思うけど、分からないのでご助言を
ld でライブラリが見つからないと

$ /usr/bin/ld -lhoge
/usr/bin/ld: -lhoge が見つかりません

しかし、次の状況

$ sudo ldconfig -p | grep hoge
libhoge.so.1.0.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libhoge.so.1.0.0

$ ls -alrt /usr/lib/x86_64-linux-gnu/libhoge.so*
-rw-r--r-- 1 root root 53616 12月 10 15:03 /usr/lib/x86_64-linux-gnu/libhoge.so.1.0.0

(上記の「hoge」はエディタで一括置換)

link でライブラリを使うには、それなりのディレクトリに保存して ldconfig しておく以外にやるべき事がある?
昨日からここで躓いてる

環境は 以下
Debian・Linux Jessie 64
ldconfig v2.19
gcc v4.9.2
ld  v2.25

457 :
libhoge.aを用意する

458 :
ln -sf /usr/lib/x86_64-linux-gnu/libhoge.so.1.0.0 /usr/lib/x86_64-linux-gnu/libhoge.so

459 :
pgrep -l -f $0 | grep -v $$ | grep -v $PPID

で、自分がもう一つ起動されていないかチェックしたいのだが、
いつもは2つしか結果が返ってこないのに、たまーーーーーに3つ返ってくる
ことがあるんですが、なんでですかね?

460 :
pgrep でマッチしたからだよね? もうちょっと説明が欲しいな。なぜ
pgrep -l "^$0$"
じゃないのかとか。
実行中じゃないはずなのにマッチするということなら終了してゾンビ状態のプロセスかもしれないけど
pgrep じゃそこまでは判らない。

461 :
拡張子.aつーたらアセンブリコードじゃなかったかな?あれ?

462 :
pgrep -l -f $0 で自分のシェルを含んだプロセスを列挙して、
grep -v $$ で自分のPIDを除外
grep -v $PPID で親のPIDを除外

→ 最終的に何も残らないかチェック(二重に起動している場合は残る)
をやりたいのですが、
pgrep の時点で、 自分+親 の場合と [ 自分 ] + [ 親 ] + [ grep -v $$ のpid ] が
出てきてしまっているぽいです。

pgrep -l -f $0 | grep -v $$ | grep -v $PPID の場合に、
grep の pid が pgrep にひっかかることってあるんでしょうか?

463 :
$0がgrepだったりしたらあるんじゃね

464 :
何が起こってるかよくわからないなら ps を使ってみたらどうだろうか。
たとえば Perl でこんな感じに

my $ps = open( STDIN,'-|','ps','x') || die( $!); # ps の pid
while (<>){
( 該当する ) || next;
print;
}

少なくとも何が起こっているかは明確になるよ。

465 :
Linux用のこんなツールが欲しい(作りたい)けどそれを実現する方法が思いつかない
なんか良い方法無いかな?

みたいなのもここでOKでしょうか?

466 :
いいと思うよ

467 :
たのしいRuby 第5版、2016
みんなのPython 第3版

まず、この2冊を読む

468 :
GTKプログラミング

469 :
struct timespec の四則演算をしてくれる関数ってある?

470 :
cmakeが嫌だったけど、慣れたらプログラムがcmakeでビルドできるとむしろホッとするようになった。

471 :
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

3OQ7OS3MXN

472 :
☆ 現在、衆議員と参議院の両院で、改憲議員が3分の2を超えて
おります。総務省の、『憲法改正国民投票法』、でググってみてください。
国会の発議はすでに可能です。日本の、改憲を行いましょう。
平和は勝ち取るものです。お願い致します。☆☆

473 :
僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

9NTGC

474 :
だれかHID USBデバイスに対するアクセス手法知りませんか?(´・ω・`)

/dev/hidraw ファイルに直接書き込みして 通信できたんですが

hidraw へのファイル操作など情報などないでしょうか?(´・ω・`)

475 :

Hidraw is the only alternative, short of writing a custom kernel driver, for
these non-conformant devices.
って書いてあった(´・ω・`)

カスタムカーネルドライバーを作成する以外の唯一の代替手段なんか(´・ω・`)
hidデバイスでドライバー作成しないでもこういったアクセスがあるんか・・・(´・ω・`)

476 :
gtkちょっとやってみたけどむずい(ー_ー)
情報が少ないよ〜

477 :
何か作りたいけど具体的に作りたいものも作るための実力もない(´・ω・`)

478 :
>>477
ぼくも同じような感じだよ(´・ω・`)

479 :
>>184
vscode

480 :2020/06/08
とりあえず既存コードの解析や改造から

集まれ!!WindowManager
デスクトップ環境総合【DE】
ただいまSerioWareをインストールちゅ
日医標準レセプトソフト ORCAスレ Part7
Ubuntu 104
くだらねえ質問はここに書き込め! Part 240
【訃報】 Debianの’ian’ 死去
vim、emacsを超えるテキストエディタが出来ない理由
( ´_ゝ`)流石(´<_`  )ぃぬx板
動画・音声関係ソフトウェア総合 8
--------------------
【FSW】富士スピードウェイ【FISCO】part19
ソフトバンク データ通信料金を過剰請求
【1000レス飛田】この世で一番つまらない石橋貴明300
Mac初心者質問スレッド280
鉄血のオルフェンズ 愚痴スレ36
ロッテ・角中 海外FA権取得も「興味ないですね。イチローさんくらいの実力があったとしても行きません」.256 7本 39打点 2盗塁
第43回全英女子オープンゴルフ4【渋野】
☆【人間の屑】ムーグ爺を糾弾するスレ【社会のゴミカス】★ Part.2
PENTAX K-1 Part25
U2 Part118
【ごまかすな】エビータ9【虹は色褪せた】
♪♪♪こんな三ツ矢サイダーは嫌だ♪♪♪
【KARA】ク・ハラ応援スレ☆204【笑顔】
☆【画像】5327
英検2級を高卒程度と言うのやめろ。大学中級程度や
【人妻】小野文惠アナ 14ガッテン【社内結婚】
TBSラジオ ラジ(コ)フェスその1
新潟アルビレックスBBラビッツ part3
Linuxプログラミング 2
【戦時板】ニダーラン 第參堡塁【足リヌ足リヌハ工夫ガ足リヌ】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼