探検


Linuxプログラミング 2

2010/02/13(土) 14:53:15ID:lCBgsQHj
Linux(特有)のプログラミングに関する話題です

前スレ
http://pc11.2ch.net/test/read.cgi/linux/1118024349/
2010/06/12(土) 19:42:10ID:K2M2QRq+
メモリマップって何キロバイトずつ割り当てられるんだっけ?
2010/07/27(火) 11:02:28ID:3DcKYDsb
特定のTCPポートへの接続を監視してログに出力したいのですが
WindowsではIP Helper APIというAPIを使って取得できたのですが
Linuxの場合はどのようなAPIがあるでしょうか?
何かヒントになるキーワードがあれば教えてください。
2010/07/27(火) 11:43:03ID:1O5g8TAw
SNMP+MRTG
2010/07/27(火) 14:42:41ID:EmXpdYGX
>>52
wine
2010/07/27(火) 14:46:26ID:3DcKYDsb
マジっすか?LinuxはそういうAPIが無いっすか?
2010/07/27(火) 15:18:44ID:66mDo/D6
>>52
man netstat
2010/07/27(火) 15:57:51ID:3DcKYDsb
なんと。Linuxならこういうのは簡単だと思ったのに
Windowsより難しいとは。
2010/07/27(火) 16:22:03ID:0utad5S3
それって,プログラム書く必要さえ無いんじゃないか…
(UNIX板じゃないんだからちゃんと教えてやれよ.)
2010/07/27(火) 17:11:36ID:1O5g8TAw
普通はAPIなんて使わないね
2010/07/27(火) 17:18:17ID:3DcKYDsb
何を使うんですか?Linux初めてなんで教えてくださいませ。
2010/07/27(火) 17:51:06ID:1O5g8TAw
netstat
2010/07/27(火) 18:07:17ID:7hjWYaWJ
>>52
iptablesでSYNパケットがきたらULOGターゲットに飛ばすようにして、
ULOGターゲットから飛んできたnetlinkパケットを捕らえる
アプリケーションを作ればいいだろう。
2010/07/27(火) 21:14:57ID:OcuG4Ito
>>52
wireshark のソースを読む
2010/07/27(火) 21:26:54ID:K5+BZwp9
netstatのソースはないですかね
2010/07/27(火) 21:30:16ID:K5+BZwp9
あった!
http://d.hatena.ne.jp/yasui0906/20080304/p1
これか
2010/07/28(水) 07:32:29ID:SziZRLsZ
>>64
あるだろ。
Ubuntu なら apt-get source net-tools とか。
2010/07/28(水) 11:51:45ID:txtD3ILB
#include<net/tcp_states.h>
でエラーがでますお
2010/07/28(水) 13:10:43ID:4j1eS4Nj
とりあえず、ディストリとバージョン晒せ
2010/07/28(水) 14:16:27ID:txtD3ILB
Ubuntuの8.04のvmwareバージョンです。
2010/07/28(水) 14:46:49ID:RnYC8Yk9
とりあえず、エラーメッセージを一字一句もらさず正確に晒せ
2010/07/28(水) 15:08:39ID:txtD3ILB
コンパイルは
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.)
2010/07/28(水) 15:14:30ID:Vt/K+IlT
これ見たまんまじゃ?
2010/07/28(水) 15:41:47ID:txtD3ILB
なんか
gcc netstat.c -I /usr/src/linux-headers-2.6.24-28/include
とやったらコンパイルできました。
2010/07/28(水) 15:51:32ID:txtD3ILB
やばいっす。動きました。
とりあえずポートしか表示されませんでしたけど
IPアドレスも表示できればあとはログに落とせますね。
わーい。
75login:Penguin
垢版 |
2010/07/29(木) 01:39:24ID:5EyS8YE1
次世代型ptrace ってなんだっけ?
2010/08/07(土) 09:19:15ID:TnDsM19L
-O2 -march=amdfam10 -m32 -free-vectorize で握ったzlibがバグありだこれ
報告すべきかすべきでないか…
2010/08/17(火) 07:46:34ID:2bRgFm2K
どんな問題があるんですか?
2010/08/17(火) 22:16:40ID:CS/oaTLk
ちなみにgcc-4.5ね

fedora使ってると、rpmの機能のかなりの部分が使えなくなる
2010/08/19(木) 22:11:02ID:lwsITLE0
Xウィンドウ実践技術講座 基礎から応用まで
代1版が92年だしやっぱり内容古いかな
80login:Penguin
垢版 |
2010/08/29(日) 04:13:38ID:gK7tzFYA
ptraceの代わりになる予定のutraceって
いつになったら代わってくれるんだ?
誰が舵取ってんの?
2010/08/29(日) 11:24:57ID:W5Uooo7S
>>23
Linuxのドライバプログラミングの本を読んでみたけど、えらい難しかった。
しかもバグった場合はパソコンがどうかなっちゃうみたいなことが書かれてあって、
こりゃ無理だと。
2010/08/29(日) 23:09:01ID:i6AxMvgi
>>81
Windowsもドライバーバグってたらきれいな青い画面が見れますよ
2010/08/30(月) 13:53:15ID:PuulG8pr
ドライバプログラミングの本って、グレー色の本?
2010/08/31(火) 00:28:02ID:Q1YyNOak
お馬さんが有名です。
2010/08/31(火) 02:27:49ID:SSjmEOpK
何のドライバを作るかにもよる

キャラクタデバイスならそんなに難しくないよ。
ブロックデバイスはもう少し難易度高いけど、キャラクタの延長だから
頑張ればなんとかなる。
ネットワークドライバは確かにえらい難しいw
2010/08/31(火) 22:37:34ID:xnYNlRcx
デバイスドライバと言ったらUSBドライバだよね。
この説明に多くのページを費やして詳述してくれているものがいいね。
2010/09/01(水) 01:09:53ID:AVfJp7rO
最近だとみんなUSB-シリアルとして認識して通信するので意味ないわ・・・
88login:Penguin
垢版 |
2010/09/12(日) 20:08:21ID:6v8xa5he
低レベルの方の標準入力のファイルディスクリプタの定数って
どのヘッダに定義されてたっけ?
2010/09/14(火) 13:58:21ID:k2J0JpsQ
Linuxの場合はAPIとは言わないのですか?
90login:Penguin
垢版 |
2010/09/14(火) 18:57:49ID:LSsKRnY3
GtkとQt
新しく勉強するなら どっちがいいですか
2010/09/14(火) 20:22:03ID:ubBcVqtk
>>90
そりゃQtだろ・・・
92login:Penguin
垢版 |
2010/09/14(火) 23:12:37ID:LSsKRnY3
すみません。
理由もあると助かります

どのディストリもGNOMEを採用していて、Qtは追加でインストールなんですけど
そういったことも含めてQtになるのでしょうか?
2010/09/15(水) 13:26:10ID:+FCbXRSZ
>>92
Qtの方が書いてて楽しいから。
あと、ドキュメントが一元で整備されてて更新頻度も高く
ライブラリも管理されているので割と安心できる。
日本語化された情報もかなり多い。

欠点は企業開発なのでノキアが死んだらつられて死ぬ
可能性がちょっと高いということか。
2010/09/16(木) 02:52:05ID:hDEjq2dq
>>93
そのときは誰かが引き継いでオープンソース化するんでわないかと
2010/09/16(木) 02:54:52ID:nTUB3ECz
きっとOracleが買い取ってくれるよ
2010/09/16(木) 03:25:35ID:Mp0/1x9U
Qtのライセンスが怖いですね。企業の利害がからむと特に。
Linuxですらもいくつもの訴訟をかかえているんでしょ?
2010/09/16(木) 03:27:07ID:nTUB3ECz
>>96
怖いっていっても誰もあんたなんか相手にせんやろ
2010/09/16(木) 03:36:08ID:Mp0/1x9U
>>97が責任をとってくれるそうです。
2010/09/16(木) 03:49:09ID:XRWA1m87
>>96
ほとんどがFUDだけどな。
Microsoftの、
「うちの特許を侵害している。だけど、どこの部分が特許を侵害してるかは契約結ばないと教えてあげない」
とか、もう完全なカツアゲ
2010/09/16(木) 04:19:49ID:d3TNE23i
久しぶりに声出してわろたwww
2010/09/16(木) 04:40:16ID:XRWA1m87
>>96
つか、GTKやりたいなら、GTKやったら?
GTKもGlade3とかでプログラミングはずいぶん楽になってるし、
今はgtk--も充分使えるしね。
GNOMEの方が標準的なのもおっしゃるとおりだし。
別にGnome-Gtkやってから、Qtやっても大した問題じゃないというか、
その経験は別に無駄にならないよ。
改めて、ああ、こういう切り口もあるんだ、って経験になるはず。
2010/09/16(木) 08:17:00ID:ecVcHbkK
>>99
なにそれこわい
>>101
gtkやqtで判りやすいおすすめ日本語サイトあります?
2010/09/16(木) 10:26:27ID:lqzwJaLH
>>102
いやいや、それがFUDってやつだよ
2010/09/16(木) 14:42:06ID:nQxYNYf6
>>102
とりあえず言語は何使いたいの?
CとC++でも回答が変わるような気がするし、
両方ともPython/Perl/Rubyとかでも可能だが。
105login:Penguin
垢版 |
2010/09/26(日) 13:04:58ID:y98Mylbc
KUniqueApplicationって何するの?
106login:Penguin
垢版 |
2010/09/27(月) 10:23:22ID:O/UIWRcV
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;
}
}
これのやってる意味がわからん。
なんとかして閉じて同じ番号で開きなおしたいってことか?
2010/09/27(月) 15:02:56ID:9dshcxct
関数名がreopenなんだから、現在のファイルを閉じて、再オープンしてるだけだと思うが。
2010/09/27(月) 15:55:42ID:O/UIWRcV
fdの付け替えか。なるほど。
109login:Penguin
垢版 |
2010/10/29(金) 00:09:46ID:XUIHih2i
プロセスAが開いているソケットディスクリプタを、プロセスBにあげたいんだけど
どうしたらいいかな。
2010/10/29(金) 19:23:33ID:EbYXtX+n
あの人のコンテンツただ乗り集団が画策するLLVMのビッグウェーブ(w が、
やってくるのに、まだGNUとか時代おくれすぎるだろ。
2010/10/29(金) 21:51:14ID:A0ogCoEx
ただ乗りっていうか、アポーとかBSDの人がかなり開発に参加してるじゃん
2010/10/30(土) 07:09:23ID:DfPaw9Am
これからはBSDの時代
2010/10/30(土) 12:12:06ID:e5Rq6fJ9
プロセスAが開いているソケットディスクリプタを、
プロセスBで使いたいんだけど どうしたらいいかな。
2010/10/30(土) 15:22:14ID:ewTReF1L
>>113
ちょっとググっただけで、できそうな話は出てきたぞ
http://oshiete.goo.ne.jp/qa/2752265.html
2010/10/30(土) 17:01:19ID:3xL9Dqyh
リンク先のリンク先が飛べないな。って JM ってもう無いんだ。。
2010/10/30(土) 19:22:50ID:AZa4J62A
>>112
そうだな、Linux終了だな
2010/10/30(土) 22:12:21ID:BsMEYQ6Y
>>115
http://archive.linux.or.jp/JM/html/LDP_man-pages/man2/recv.2.html
ここに引っ越してる

>>116
バーカ
2010/10/31(日) 07:16:47ID:ie4s4zqd
>>113
man unix

...

SCM_RIGHTS
他のプロセスでオープンされたファイルディスクリプタのセットを送受信する。 データ部分にファイルディスクリプタの整数配列が入っている。 渡されたファイルディスクリプタは、あたかも dup(2) で生成されたかのように振る舞う。
2010/11/01(月) 08:29:57ID:2Ytwk1LQ
>>115
引越し先はこっち。
http://linuxjm.sourceforge.jp/
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/recv.2.html
120login:Penguin
垢版 |
2010/11/03(水) 19:03:18ID:LOm9zf2z
MOD_SSLを使ってSSLサーバを構築しようとしています。
最初にmakeしたときは、ndbm.hがないというのでネットで探したら見つかりました。
それをコピーして使ったところコンパイルは通るようになりました。
しかし、起動に失敗してエラーログを見るとmod_auth_dbm.cに未定義の関数
dbm_fetchがないというエラーが出ていました。犯人はもともとapacheに
含まれていないgdbmというソフトの中のndbm.hというヘッダの中にあって、
dbm_fetch関数を定義してあるソースコードもありました。未定義の関数を
コメントアウトするとコンパイルに失敗します。
この実行時エラーをなくすためにはどのようにコンパイルすればいいのでしょうか。
makeの読み方がわからずどのようなオプションをつければいいのかわかりません。
解決方法が解る方がいたら教えてください。
開発環境はSlackware11.0、GCC3.4.6です。
2010/11/03(水) 19:05:03ID:XRh80cSd
GUIのプログラミングって何でやってますか
言語とツールキット
若しくは
言語とライブラリ
を教えてください
2010/11/03(水) 19:09:00ID:NQDNkNv0
さくっと書きたいときはQt Pythonで書いてるかな
2010/11/03(水) 19:57:24ID:XRh80cSd
>>122
QtでC++ってどうですか
GTKはできないらしいので
2010/11/03(水) 20:32:53ID:NQDNkNv0
>>123
Qtは元々C++用に作られたライブラリだからC++で書いても問題ないよ
Pythonで書いても別にPython for Qt独自のの恩恵が得られることはない
2010/11/04(木) 07:07:09ID:tZlg3f78
>>124
ありがとうございます
参考になりました
安心してDLしたいと思います
126login:Penguin
垢版 |
2010/11/22(月) 21:49:50ID:KTz7/IMD
>>120

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

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

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


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


そんな所でつまずく様なら、バイナリパッケージ使った方が良いかも知れません。
2010/11/25(木) 02:17:13ID:yt4Mk06Z
TCPやUDP通信で、recvやrecvfrom実行前に、対象ソケットに今受信しているデータ数を取得するにはどのようにすればいいんでしょうか?
2010/11/25(木) 18:42:48ID:RzV8m0BF
>>127
getsockoptで調べる
129127
垢版 |
2010/11/26(金) 09:39:02ID:BmBjOZDb
>>128
getsockoptを検索してみました。
受信バッファサイズはSO_RCVBUFで取得できるようですが、今受信しているデータ数を取得するにはどんなオプション指定をすればいいのでしょうか?
2010/11/26(金) 15:11:03ID:hZHeZGDQ
>>129
man 7 tcp
131127
垢版 |
2010/11/26(金) 15:56:41ID:BmBjOZDb
>>130
なるほど!
ありがとうございました。
2010/12/04(土) 18:34:14ID:lrbZ4Vw/
最近、ようやくファイルディスクプリタの概念を理解することができたので、
ファイルディスクプリタを使ってテスト&遊びをしてみたいと思う。
面白そうな関数ありませんか?
2010/12/04(土) 18:50:02ID:UtwhdPeF
>>132
open関数おすすめ
オプションの全組み合わせを順番に試してみろ
134132
垢版 |
2010/12/04(土) 19:08:28ID:lrbZ4Vw/
>>133
ありがとうございます
試してみます
2010/12/04(土) 20:43:32ID:NsFipHC9
ソケットでFDが送れるとかおもしろいよね。
136login:Penguin
垢版 |
2010/12/07(火) 15:46:55ID:MEj833l6
flock(2)でタイムアウトさせたいんだけどどうしたらいいかね?
2010/12/07(火) 17:00:15ID:FDUVL6Om
SIGALRM

もちっとお手軽な方法がほしいのうとか思う。
2010/12/07(火) 21:48:25ID:pQrU+RrE
flockって、だいたいロックした順に並んでるの?
139login:Penguin
垢版 |
2011/06/17(金) 00:47:05.65ID:Z0wgUHnW
Windowsでは、テキストエディタで開いてるものを他のテキストエディタで開こうとすると
「ファイルがロックされています」
のような感じで編集させないことができますが、Linuxではこれができませんか?
2011/06/17(金) 00:59:58.01ID:creDCjXk
flockでLOCK_EX
2011/06/17(金) 01:31:32.35ID:Z0wgUHnW
>>140
それでは実現できませんでした。
2011/06/17(金) 01:46:27.65ID:otf7FX+H
>>141
マジかよ。それ大ニュースだから。世界中で大問題になる。
2011/06/17(金) 10:50:29.74ID:FnT9BICC
>>141
本当なら全世界の6割のサーバで障害が発生するぞ!
今すぐ再現手順を明かすんだ!
2011/06/17(金) 11:43:54.98ID:HFvfY6fg
>>139
こういう話?
p://linuxjf.sourceforge.jp/JFdocs/kernel-docs-2.6/filesystems/mandatory-locking.txt.html
2011/07/02(土) 15:04:22.72ID:qRtAuIzI
共有メモリのアクセス高速化する方法教えて
2011/07/02(土) 17:49:21.80ID:lKRns3Nn
>>145
排他しない
2011/07/13(水) 13:18:16.11ID:0nLCWyoY
linuxプログラミング=シェルスクリプト
って理解でOK?
2011/07/13(水) 13:30:20.30ID:fUIVhB5h
コマンドとコマンドを繋げる事から始まって段階を追っていつのまにか本格的な
プログラミングにまでリニアに勉強している自分に気づけるのがlinux
149login:Penguin
垢版 |
2011/07/27(水) 18:43:29.30ID:2cBNDfA/
linuxでWindowに動画投影する一般的な方法って何?
できればWidget tool kitレベルのもんじゃなくて、
WindowsでいうDirect Showレベルの低水準なヤツ教えて。
2011/07/28(木) 09:29:37.35ID:PfRiPPwR
mplayerあたりのソースを読めばいい気がする。
何にも無いところから再生できるから
2011/07/28(木) 18:44:59.70ID:ZtDQHquS
やっぱそれしかないか。
レスを投稿する


ニューススポーツなんでも実況