1read 100read
2012年6月Linux570: Linuxプログラミング 2 (233) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Office Suite 統合スレ その2 (506)
ノーパソ DELL Inspiron Mini 9 発売 (376)
H/Wエミュレータ総合スレ (338)
集まれ!!WindowManager (780)
Xwindows をインストールしてない人が集うスレッド (532)
FVWM スレッド (339)

Linuxプログラミング 2


1 :10/02/13 〜 最終レス :12/05/03
Linux(特有)のプログラミングに関する話題です
前スレ
http://pc11.2ch.net/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の、
「うちの特許を侵害している。だけど、どこの部分が特許を侵害してるかは契約結ばないと教えてあげない」
とか、もう完全なカツアゲ

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【悪戦】初心者から中級者への道【苦闘】 (221)
sidux - Debian Sid 安定化プロジェクト (782)
Linux何がすごいの? (548)
あなたの pstree みせろやゴルァ (356)
Linuxは駄目だと思う人のスレ。 (289)
【仮想】User Mode Linux【OS】 (208)
--log9.info------------------
(゚Д゚≡゚Д゚)現状、本職しかいないわけだが2 Ausf.B (346)
ハヤカワ文庫の表紙って何を狙ってるの (384)
河出書房の奇想/国書刊行会の冒険/晶文社の追悼 3 (239)
『ねじまき少女』(バチガルピ)つまんないんだけど (217)
【ウィリアム】サイバーパンク小説【ギブソン】 (261)
それにしても2011年の秋ってSFだなぁ (415)
【氷と炎の歌】G.R.R.マーティン原書スレ (660)
こんなユリアンは嫌だ!part34 (346)
H.P.ラヴクラフト -22巻- (882)
こんな指輪物語はいやだ パート26 (222)
ファーシーアの一族 (528)
ファンタジー/FT総合スレ (565)
今日の早川さん 4冊目 (532)
今日読んだSF/FT/HRの感想 13冊目 (882)
小林泰三 その9 (675)
【ベルガリアード】エディングス22【エレニア】 (725)
--log55.com------------------
★どんなポケモンにオムツ履かせてみたい? 8
DPリメイクのポケモン分布を考察するスレ
シェイミ、メルタン、ナギサ!迷子の探検隊!!
【引退】伝説の配信者ずいえき【とほほ…】
【老朽化】サトシアンチスレ23【時代遅れ】
【ボドレックス】役割論理スレ234【ボーラオス】
ポケモン二次創作&二次創作厨総合アンチスレ3
【孵化余り】疑似ミラクル交換スレ9【放流】