Linuxプログラミング ..
[2ch|▼Menu]
263:login:Penguin
07/09/17 09:33:47 pdW5VZYg
トラぶったときやること。
1. ドキュメントみる
2. 本家が出してる情報を探す。Webページがあるなら、news/update, errata, FAQとか。
3. 本家のBTS, ML/Forumがあれば、そこを見る
4. Web検索
-------
5. strace/ltrace等で追ってみる
6. ソースみる
7. デバッガ使って深追い(発生している現象の解析、一般化)

BTSすら見ないひとも結構居るね。
ひたすら現象だけ追ったり(パケットキャプチャとかね)して、時間がもったいない。
おかしくなってるのがわかったら、BTSとかMLで、事例がないか調べてみればいいのに。

>>260
サポートが受けられる範囲で、大口ならそういうサポートが受けられるのかな?
構築とかまで全部任せてるとか。

264:login:Penguin
07/09/17 09:45:38 s0twSYHE
>>262
スレの流れ上そういうムードなのかもしれんが、煽るなよ。
ちょうどよい書き込みがあった(>>261)ばかりだが書くが、もちろんソースも見ている。

strace ps -L の結果から(下記)、/proc/pid/task/ のエントリ数を見て自分の抱えてるスレッド
のIDを得てることにほぼ間違いないと思いつつ、ソースを確認しているところなわけね。

open("/proc/18220/task", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 6
fstat64(6, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
fcntl64(6, F_SETFD, FD_CLOEXEC)         = 0
getdents(6, /* 5 entries */, 1024)      = 92
stat64("/proc/18220/task/18220", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/18220/task/18220/stat", O_RDONLY) = 7

ここで聞いたのは、思わぬ勘違いの可能性を少しでも減らすため。あと、psコマンドが非効率
なことやってる可能性もあるから、最新のシステムコールを知っている人間からの回答があっ
たら嬉しいな、とか。そのへん。


265:login:Penguin
07/09/17 09:48:15 s0twSYHE
眠いようだ。typo訂正。

正: ちょうどよい書き込みがあった(>>263)ばかりだから書くが


266:login:Penguin
07/09/17 13:41:16 2vZ6I9C9
>>263
Linuxサポートは、ぐぐったらこんなページがありましたけど
なんて普通に述べられたりして結構ビビるよね。

267:login:Penguin
07/09/17 16:13:28 s0twSYHE
>>266
それが自分のページだったりしたら笑えるな。調べ物をしていると、日本語での情報が自分のblogしか
ないってことがよくあるので。


268:login:Penguin
07/09/17 16:25:52 KQNRR09N
>>267
あるあるw

269:login:Penguin
07/09/17 18:23:28 IoEVGx7E
g++-4.1.2, libstdc++-4.1.2で、std::fostreamのインスタンスから、対応するfile descriptorを得るにはどうしたらよいでしょうか?

270:login:Penguin
07/09/17 18:52:45 warckn1B
>>267
それで金とれるんだから、オープンソースっておいしいよな。

271:login:Penguin
07/09/18 00:07:49 FePolVgo
ドライバに依存しないで

sk_buffにアクセスするにはどうすればいいの?

272:login:Penguin
07/09/18 10:09:49 CbMPhksH
/proc/kcore

273:login:Penguin
07/09/18 13:22:37 ApHFmsOy
root権限で動いてるんだけど、hogeというユーザからのsignalは受け付けたい

というときには何をすればいいんだっけ

274:login:Penguin
07/09/19 00:40:52 2QfTM7JO
raw socketから上がってくるデータに
タイムスタンプ付けたい場合ってLinuxの場合
どうするの

getなんちゃら禁止だとどうゆうことができそうなの?

275:login:Penguin
07/09/19 09:41:24 Xd50Xp8J
>>273
sudoでええやんか。


276:login:Penguin
07/09/19 19:43:52 zj6+rBh8
>>275
それじゃhogeというユーザじゃなくなっちゃうじゃん

277:login:Penguin
07/09/19 21:21:59 0ExJA0em
>>273
SELinux 使え
それ以外は無理

278:login:Penguin
07/09/19 22:22:40 d9OxuuhF
>>273 >>277
capabilities(7)のmanみれ


279:login:Penguin
07/09/19 23:04:15 zj6+rBh8
>>278
すばらしい。。お礼にあとでおいしそうなラーメン画像うpするわ。

280:login:Penguin
07/09/19 23:17:27 d9OxuuhF
>279
まぁ死ぬほど使いにくい仕組みだけどな。POSIXのケイパビリティは。
SELinux+SEEditも試しとけ。

281:login:Penguin
07/09/22 04:25:23 0+hWr/d7
futex使い方おせーて

282:login:Penguin
07/09/22 04:51:08 rfMprt9C
drepperタンのドキュソメントでも読んどけ。

283:login:Penguin
07/09/22 05:30:16 0+hWr/d7
どこにあるの?

284:login:Penguin
07/09/22 06:51:15 rfMprt9C
URLリンク(people.redhat.com)

285:login:Penguin
07/09/22 15:34:57 0+hWr/d7
おいkernel2.4でfutexつかえねーぞ



286:login:Penguin
07/09/22 15:43:22 t3vHBCq6
>>285
五月蝿いよ、スレ汚し

287:login:Penguin
07/09/22 15:44:56 rfMprt9C
>>279
お礼のラーメン画像まだ?

288:login:Penguin
07/09/22 16:53:44 F0YS4UKz
A,B,C というプログラムがいて、それぞれが好きなタイミングで
あるキューにデータを積む
それをDというプログラムが好きなタイミングで取り出して処理する

というプログラムを書きたいんだけど、この場合
キューにどんな仕掛けを使うのが一般的かな


289:login:Penguin
07/09/22 16:57:10 ZMcdaoSF
乱数?

290:288
07/09/22 17:01:08 F0YS4UKz
好きなタイミング ってのは任意のタイミングってことで。
メールスロット?みたいな機能を作ろうと思ってます。

291:login:Penguin
07/09/22 17:05:49 rfMprt9C
>290
mq_*();

URLリンク(www.opengroup.org)

292:login:Penguin
07/09/22 17:05:54 ZMcdaoSF
mmap?

293:288
07/09/22 17:35:59 F0YS4UKz
>>291
ありがとう!
メッセージキューって、多対1は出来ないと思い込んでたよ。

ちょっとこれで1時間くらい組んでみる。

294:login:Penguin
07/09/22 17:38:25 0+hWr/d7
>>293
速度おせーけどいいのか?

295:288
07/09/22 17:46:05 F0YS4UKz
>>294
やりとりが200ms以上遅延しなければ問題ないです。

あんまりにも遅ければキューのルーチンだけ
別の方法に切り替えるまでです。

296:login:Penguin
07/09/22 18:00:42 rfMprt9C
>294
遅いって、何とくらべて、どんな処理が、どの程度遅い?
@Linux 2.6 w/ futex


297:login:Penguin
07/09/22 19:23:22 SmO2oYOC
                  マチクタビレタ〜
      ☆ チンチン〃   Λ_Λ   / ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < おいしそうなラーメン画像マダー?
マチクタビレタ〜 \_/⊂ ⊂_ )   \____
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |   マチクタビレタ〜


298:login:Penguin
07/09/22 19:57:14 VDh1QMev
>>279じゃないけど、おいしそうなラーメン画像張っておきますね。
URLリンク(showa-diary.com)

299:login:Penguin
07/09/22 20:01:27 iMrKxTpi
かなしい気分になりました。

300:login:Penguin
07/09/23 01:25:08 tBRgGEFT
最近知ったシステムコールと関数:
pread(2), posix_fadvise(3), dirfd(3)

活用法を勉強中のシステムコール:
madvise(2)

以上、俺のチラシの裏として活用させてもらいました。

301:login:Penguin
07/09/23 04:05:45 R2J73xCx
>>299さんに拾い物を押し付ける
URLリンク(image.blog.livedoor.jp)

302:login:Penguin
07/09/23 14:29:30 2H3sPwph
メッセージキュー(mqueue)を使うプログラムを書いて、コンパイルして
リンクしたらmq_openとかが無いっつわれた。

これって、-lなんとかのライブラリを指定しないと駄目なの?

303:login:Penguin
07/09/23 14:43:48 tBRgGEFT
% for i in /lib/lib*.so /usr/lib/lib*.so ; do (nm -D $i | grep " T mq_open" 2>&1 > /dev/null) && echo $i ; done
/lib/librt-2.5.so
/usr/lib/librt.so

ということで -lrt したら?



304:login:Penguin
07/09/23 14:43:59 mx2b6ImT
マニュアル読め

305:login:Penguin
07/09/23 14:54:32 tBRgGEFT
>>304
mq_open(3)には記載がない悪寒

306:login:Penguin
07/09/23 14:56:54 tBRgGEFT
mq_overview(7)に書いてあるようだねぇ。知るかよw


307:login:Penguin
07/09/23 15:03:44 CJrcPuMq
>>306
知らない方が異常

308:login:Penguin
07/09/23 15:06:17 tBRgGEFT
すごーい。

309:login:Penguin
07/09/23 15:07:16 8ALjKCMy
gentoo のマニュアルには mq_* 全部に書いてあった

310:login:Penguin
07/09/23 15:15:42 tBRgGEFT
mq_のマニュアルってglibcの一部だよね?
gentooでは自前で製作しているということなのかな

311:login:Penguin
07/09/23 16:49:21 1fQtWZJX
Gentooは普通にLinux Programmer's Manualだけど、
2006-02-25だと書いてあるみたい。


312:302
07/09/23 17:30:26 2H3sPwph
>>303
ありがとう!
お礼にあとでおいしそうなカツ丼の画像をうpするよ

>>306
それ見てたんだけど見逃してたよ。俺の目は節穴だった。ごめん。

313:login:Penguin
07/09/23 17:33:10 tBRgGEFT
ラーメンは来なかったら、今度は期待してるぜ。

314:login:Penguin
07/09/24 00:52:36 kgZ5pKnk
>>313
URLリンク(peach-daioh.cool.ne.jp)
URLリンク(peach-daioh.cool.ne.jp)
ちょっと大きめだけど

315:login:Penguin
07/09/24 01:08:05 ytCajFbL
グロ画像にしか見えません。そもそもLinuxプログラミングと関係あるのか

316:login:Penguin
07/09/24 03:02:18 vibgjhrs
>>315
ky

317:login:Penguin
07/09/24 04:24:37 d3+l1tl9
>>315
キャインキャイン!

318:login:Penguin
07/09/24 10:39:15 hY1Zpi5v
>>316
なにがkyだ。それは手前の方だろ

319:login:Penguin
07/09/24 11:40:48 oWdnqGOu
kyってなに?
最近略語が増えてついていくのが大変

320:login:Penguin
07/09/24 11:53:42 wKP5qWj5
Kuuki Yome

321:login:Penguin
07/09/24 11:57:56 K+J+mAAI
空気嫁

322:login:Penguin
07/09/24 12:00:15 oWdnqGOu
>>320-321
ありがとう。これで空気読めるようになったよ。

323:login:Penguin
07/09/24 14:40:26 d3+l1tl9
読めてません。

324:login:Penguin
07/09/24 16:44:27 /TENigCK
ある特定のライブラリ(libXXX.a)の中でメモリリークが発生していることがわかっているので、
そのライブラリだけBoehm GCのmallocに差し替えたいんですが、そういうことってできまし
たっけ?

325:login:Penguin
07/09/24 16:49:02 /TENigCK
>>296もよろしく。>>294


326:login:Penguin
07/09/25 00:42:58 tOnrroA3
>>324
malloc フックでぐぐれ

327:login:Penguin
07/09/25 01:14:39 DweR4QXy
>>324

libをデバッグシンボル込で作成して
valgrindで調べた方がよくねーか?

そうしたら動作シーケンス解かるから
あとは単体で実行してデバッグすれば
よくね?

そうゆう解決方法は根本的な対処にならないから
やめれ。リークしてるものは修正しろ

328:login:Penguin
07/09/25 23:16:01 DweR4QXy
>>324
同級生に1人はいた、借りたものを返さないやつだな。

借金沢山ありそうw

329:login:Penguin
07/09/26 00:06:34 YpckYtbt
>>324
mallocってシステムコールじゃないっしょ。リコンパイルなしでは無理っしょ

330:login:Penguin
07/09/26 01:26:15 yQRyKR94
LD_PRLOAD子欄の?


331:login:Penguin
07/09/26 21:16:50 v+gFFOHB
>>327
LinuxはWindowsと違って多少リークしてても普通に動くよ。
実際、安定しているといわれてるアプリでもリークしてるものが多い。
例えばFirefoxとかGimpとかね。
コマンドの中には最初から解放しない戦略をとってるものもあるし、
多少のリークは修正する必要がない。
実際、有名なアプリでも修正しない戦略をとってるものがあるしね。
ほら吹きOSじゃないんだから、メモリーなんていちいち気にする必要ないんだよ。

332:login:Penguin
07/09/26 21:30:49 M/+a2TgQ
また変な釣りが湧いて出たか

333:login:Penguin
07/09/26 22:28:15 FU3404FR
バイオワーム未満のまずい餌を
みてひさびさに閉口したw

334:login:Penguin
07/09/26 22:32:32 P0NX8bPM
  ,-´ ~¨"''''‐- .,
  |` ー- ...,,,___.)
  |\丶}} !{   |i i|
 |`ィ,,ヽ {j   }、l|
 ヘミノ /^\ヽ_/^!:|i
 l_ノ V u _ノ   、リ
 人 >  ( ●)(●)  何を言っているのか わからねーと思うが
/ハノゝ u  (__人__)  おれも何を言っているのかわからなかった…
 V"     ` ⌒´ノ
.  |         }   常識的に考えて・・・
.  ヽ      u   }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \

335:login:Penguin
07/09/26 23:22:54 v+gFFOHB
>>333
バイオワームがまずいんじゃなくて
お前の料理がまずいんだ
素材のせいにスンナボケ

336:login:Penguin
07/09/27 01:01:03 gsAwBD+f
>>330
へー Linux の静的ライブラリは環境変数 LD_PRLOAD で置き換えできるのか〜
教えてくれてありがとう。

337:login:Penguin
07/09/27 02:34:38 VzBoMjAX
>>336
L D _ P R L O A D 子 欄 の ?
Hint:.a
Hint:PRLOAD

338:login:Penguin
07/09/27 08:49:58 hzAH420J
>>336
static linkされたものを置換できるとは誰も言ってない。
勝手に拡大解釈するな。Linkder&Loadersとか、適当な本で勉強汁。

あと、LD_PRELOADな。Eが抜けてる。


339:login:Penguin
07/09/27 08:50:59 hzAH420J
Linkder&Loaders
じゃなく
Linkers&Loaders

ごめん。

340:login:Penguin
07/09/27 11:29:56 x6U3NKaN
あ る 特 定 の ラ イ ブ ラ リ ( l i b X X X . a ) の 中 で

341:login:Penguin
07/09/27 13:50:54 iv68VIR1
適 当 な 本 で 勉 強 汁 。


342:login:Penguin
07/09/28 00:09:07 MDX80Mu5
mallocってシステムコールかいな

343:login:Penguin
07/09/28 02:07:37 wLKx4a83
>>324
そのライブラリだけってのが気になるがLD_PRELOADで差し替えできるようだね。
前提や条件を受け入れられるかは知らないが。
URLリンク(www.hpl.hp.com)

関係ないけどleak.htmlの最後にさらっと粋なことが書いてあるwww

344:login:Penguin
07/09/29 03:19:25 Ao0+HlwR
openipmiの日本語プログラミング
マないかな?

345:login:Penguin
07/09/29 23:45:42 KUrKiugz
iptables を使用してトランスペアレントプロキシを作成しようとしています。
ポート10000に届くすべてのあて先IPアドレスを自身宛に書き換えて受け取っています。

その状態で getsockopt()に SO_ORIGINAL_DSTを与えると本来のあて先アドレスがわかるということで試していますが上手くいきません。
ENOPROTOOPT : 指定された層(level)にはこのオプションは存在しない
というエラーが返されます。

どのように解決すれば良いかわからず投稿させていただきました。
アドバイスがございましたらよろしくお願いします。

環境
fedoracore6 2.6.18-1.2798.fc6xen
gcc 4.1.1

-----------------------------一部抜粋-----------------------------------
int sock;
socklen_t len;
struct sockaddr_in addr0,orig_dst;

addr0.sin_family = AF_INET;
addr0.sin_port = htons(10000);
addr0.sin_addr.s_addr = htonl(INADDR_ANY);

sock = socket(AF_INET,SOCK_DGRAM,0);
bind(sock,(struct sockaddr *)&addr0,(socklen_t)sizeof(addr0));

len = (socklen_t)sizeof(orig_dst);

if(getsockopt(sock,SOL_IP,SO_ORIGINAL_DST,(struct sockaddr *)&orig_dst,(socklen_t *)&len)){
perror("getsockopt");
}
-------------------------------------------------------------------------

346:login:Penguin
07/09/30 00:11:06 JTctf1Ko
>>345
いくらくれる?

347:login:Penguin
07/09/30 09:27:43 mXOCWJ6v
>>346
アホか。

348:login:Penguin
07/09/30 18:32:05 cTP/1hI9
つ I ホラ、ダイジニツカウンダゾ

349:login:Penguin
07/10/01 00:56:00 kZSHZlgP
(´,∀`)ゴチソウサマ
>>345
SOCK_DGRAMじゃなくてSOCK_STREAMだとどうなんだろう?

350:login:Penguin
07/10/01 14:29:09 WPD1ZzVS
>>349
それかもしれませんね。
試す環境が無くなってしまったので出来ませんが・・・
connectされたソケットじゃないと取れないとか?
どうやって取ってるかわからないから何ともいえないけど・・・。
ありがごうございました。
良回答 10pt


351:login:Penguin
07/10/02 17:43:12 pFIeRD5Z
>>345
この質問はnetfilter-develにたまーに来る(1年に1回位)。
で、回答は SO_ORIGINAL_DST がサポートされているのはIPv4のTCPのみ。

どーしてもっていうことなら、もはやcacheにしか残ってないこのパッチを参考にするこった。
URLリンク(web.archive.org)

このパッチ相当の機能は、2007年現在まだマージされてないはず。

352:login:Penguin
07/10/02 23:15:16 TateldD6
あのーオドオドオド

あのーー2socket QuadCore Xeon
SNMPカーネル環境下でgettimeofday()すると
時間がびみょうにずれて困るのですが

どうすればいいのですか?



353:login:Penguin
07/10/02 23:17:15 OCvX4Zeq
>>352
kernelのバージョンとarchは?

354:login:Penguin
07/10/02 23:37:43 TateldD6
kernlは2.4.24と2.6.20です

debianで動けばOKです

355:login:Penguin
07/10/02 23:40:33 OCvX4Zeq
>>354
ずれるというのは時間が戻るということ?
最新のカーネルを使ってみれば?

古いので動かしたかったら、debianのBTSに突っ込んでみたら?

356:login:Penguin
07/10/02 23:46:34 TateldD6
>>355
そうですねー。
こうゆうのって自分で実装するのは難しいのでしょうかね?

357:login:Penguin
07/10/02 23:57:38 OCvX4Zeq
>>356
CPU1個にすればいいじゃね?

358:login:Penguin
07/10/03 08:55:17 mGA09CPb
>>352
そういう現象は聞いたことがない。貴方のコードに問題があるかもしれない。
どういうプログラムなのか、コードと実行結果を貼るなりしないと何とも言えないな。

359:login:Penguin
07/10/04 00:38:47 BHffRC4x
同一の名前で、ちょっとバージョンの違う
/usr/lib/xxx.soと/opt/dev/xxx.so

があるとして、絶対/usr/lib/xxx.soを使わずに
/opt/dev/xxx.soを使うようにコンパイルすること
ってできるでしょうか。

libcとか今組込み用に作ってるのですがどうにも
/usr/libのほうよみにいっているようで....

360:login:Penguin
07/10/04 00:40:34 0WRnyS6M
>>359
LD_LIBRARTY_PATHだっけか。

361:login:Penguin
07/10/04 00:45:16 BHffRC4x
>>360
それでいけますよね?

前任者がDQNみたいで

#define printf xxx_printf

とかずらーっと定義して
/dev/xxx..soを必ず使うように
#defineするとか意味不明な
ことしてて困惑しています。

ビルドも独自の.sファイル用意して
アドレスに直にバインドするとか
意味不明なことをしています

362:login:Penguin
07/10/04 00:57:37 hH9ei5GL
>>359
リンク時にバイナリにライブラリ検索パスを埋め込むために、
ld 実行時にLD_RUN_PATH を設定するか、-rpath オプションを
付けてリンクする。

LD_LIBRARY_PATHは、バイナリビルド環境と実行環境の差を
埋める時のみに使うべきかと思う。

363:login:Penguin
07/10/04 01:15:11 BHffRC4x
>>362
わたしもそう思うのですが

でもなんで

#define printf xxx_printf
なんてしたんだろう。
コード汚くなって意味ないと思うんだけどな...
こんなことする馬鹿他に見たことあるって
人いますか?明日そいつを血祭りにあげようと
思ってます。

364:login:Penguin
07/10/04 02:03:36 PKHRa3Ub
おまえさんよりは前任者の方が詳しい鴨よ。
もちっとkwsk書いてみたら?

365:login:Penguin
07/10/04 03:55:40 Lja62WFk
>>351
おそくなりましたがありがとうorz

366:login:Penguin
07/10/04 03:57:32 2YWUx8wh
まず理由を聞くべきだろ?

367:login:Penguin
07/10/04 10:22:53 SX6Gg+w/
組み込み用ならそれなりの理由があるのかもしれないような。

368:login:Penguin
07/10/04 21:48:51 BHffRC4x
理由を聞いたが-rpathを知らないから
そうやったって自供しました。

もう直後にイラっときたので
廃材詰めるダンボールにブン殴って
のしてつめてやりました。

半日ぐらいノビてたなw



369:login:Penguin
07/10/04 22:21:52 NmqYv4MX
暴力はいけません

370:login:Penguin
07/10/04 23:57:03 kujiByn/
組み込みでLinuxなのにlibc自作って何か新鮮

371:login:Penguin
07/10/05 00:54:03 RuBV1DrC
Upstreamに流すつもりのFIXコードを書いてテストしておkぽかったんだが、
なんかしらないがそのままゲームにはまってしまって疲れて寝た。
次の日、他の人がパッチをコミットしていた時の悔しさ。

372:login:Penguin
07/10/06 02:25:21 jz11x7Hd
汎用DMAドライバってどっかに
ないかなぁ

CPU使わないでデータコピーしたい

373:login:Penguin
07/10/09 23:39:51 D7LghPSZ
カーネル2.4にvsyscallのgettimeofdayを
移植したいんだけど

いい情報ないかな?最悪ドライバモジュールで
実装でもいい

374:login:Penguin
07/10/10 23:40:45 MaiKO5Xh
Linuxで作成したファイルをWindowsに移すにはどうしたらいいんですか?

375:login:Penguin
07/10/10 23:58:52 wcdf1KNh
ftp

376:login:Penguin
07/10/11 00:10:18 IhTCaNfQ
od -x filename | lessしたあと

windows側で1バイトずつ
手打ちすればいいよ

377:login:Penguin
07/10/11 00:14:30 0rD2It5e
>>376
メモ帳でやってみました。
なんかファイルサイズが16倍になったんですが、ホントにこれ使えるんでしょうか・・・。

378:login:Penguin
07/10/11 01:03:35 XbMVm2Iq
>>376
おにー

379:login:Penguin
07/10/11 01:29:29 nRNlKb1D
>>377
なんで16倍?

380:login:Penguin
07/10/11 03:52:22 yX6O/zNE
tcpdumpみたいなものをカーネルモジュールで書いているんですが、
tcpやudpのデータ部分を取得するにはどうやったらいいのでしょうか。

sk_buff->nh.iph->protocol
でプロトコルの種類はわかるのですが、実際のデータ部の取得方法が
いまいちわからなくて・・・。

どなたかわかる方よろしくお願いいたします。

381:login:Penguin
07/10/11 16:06:54 q6R8bHpk
>>377 Bz使えよ

382:login:Penguin
07/10/13 21:50:16 Zr5sYmS5
URLリンク(kernelbook.sourceforge.net)

383:login:Penguin
07/10/15 21:09:43 LCPtRnTv
カーネルソースはあるのにヘッダーsがないばやいで
ソースからヘッダーってできないですか
っていうかソースがあればヘッダーはいらないと思ってた!
なんでなん?

384:login:Penguin
07/10/15 23:41:51 XG6Zr9VJ
>>383
インクルードするところを
/usr/includeとかになってるところを
/usr/src/linux/includeとかにするところでいいんじゃね?
-Iとかで指定するところだと思うよ

385:login:Penguin
07/11/01 21:34:43 OFz7RgOT
ipmiのライブラリってどれもつかえねーな

全然関係ないけど、montavistaの連中のコードってきもくね?
CもC++もどれもまともにかけない糞が多すぎる。

それについてこっちは金払ってるのに問い合わせすると
仕様ですwだってさ

あそこのエンジニアはSCOよりひどい

386:句読点打てないバカをサマージャンボする俺 ◆1xdL.Dyf.I
07/11/03 11:25:48 4iXGn396
>>385


387:login:Penguin
07/11/09 14:05:06 Aq/ZR00i
メモリの使い方について質問。

システムメモリ領域は負のアドレスというのを読んだのですが、
連続した次の領域を読む場合、正負どちらの方向に進めばいいのでしょうか?
例えば-521568100の次の領域は、-521568099?それとも-521568101?

388:login:Penguin
07/11/09 14:45:29 muGJS6N4

-3 -2 -1 0 1 2 3

- +

389:387
07/11/09 15:12:03 Aq/ZR00i
>>388
なるほど〜。
ありがとうございました。

390:login:Penguin
07/11/10 01:16:39 tSMAg/81
LD_PRELOADで関数フックしたあと、もとの関数呼ぶ方法ってありますか?

void hoge()
{
hoge(); // <- もとのhoge関数を呼び出したい
}

391:login:Penguin
07/11/10 02:58:50 RN+zA3HO
>>390
dlopen, dlsym


392:login:Penguin
07/11/11 12:34:41 jhqVcqNv
mono develop使ってるヤシいる?

393:login:Penguin
07/11/11 19:49:41 n7+Lb81h
>>390
dlsymとRTLD_NEXTでググればわかるとおもうよ。
>>391
dlopenは不要

394:login:Penguin
07/11/12 03:27:53 V6ygCzcx
今linux security module(lsm)の勉強のために、
root_plug.cを改造して試行錯誤してるんですけど、
これって改造する度に、
毎回全てのソースをコンパイルをしなければいけないんでしょうか?


395:login:Penguin
07/11/12 03:29:28 5hFKzEaG
makeでやれば関係ないソースは以前作ったオブジェクトそのまま使ってくれるだろ

396:login:Penguin
07/11/12 03:34:17 V6ygCzcx
>>395
確かにそうなんですけど、
なんとなく気持ち悪くて、
毎回新しくオブジェクトを作りなおしてました。
でもそうしなくても問題ないということですね。
ありがとうございました。

397:login:Penguin
07/11/12 04:11:37 CZeG29nh
,`,(+Φy〆),`,
    ‘オソロシキ ゲンゴダナ…

398:login:Penguin
07/11/12 05:40:50 PgGOtZpU
>>391
>>393
dlsym( RTLD_NEXT , "function" )
でできました。
ありがとうございます

399:login:Penguin
07/11/14 03:20:29 LtZiY/oO
Linux上でWindowsのネイティブバイナリは吐けますか?

400:login:Penguin
07/11/14 03:26:37 d8LODZS2
>>399
cat explorer.exe > new_explorer.exe

401:login:Penguin
07/11/14 08:14:07 1nX1kzlD
mingwのクロスコンパイラが使えるよ。Debianならapt-get install mingw32で。


402:login:Penguin
07/11/19 09:16:47 y8uScUHY
ありがとうございます

403:login:Penguin
07/11/27 09:45:49 A2SYKSWK
xxgdbでpopen()をトレースすると
[New Cannot find thread 2049: invalid thread handle
と表示されて止まってしまうのだがこれって仕様?

404:login:Penguin
07/11/28 00:05:12 7Ks9DXGS
>>403
仕様

405:403
07/11/29 00:55:49 jIID4fY+
>>404
レスありがとう。
system()かexecl()系使うしかないのかしら・・・

406:login:Penguin
07/12/03 03:31:14 ACH4D/bz
opendir(3)の実装はどこにあるんでしょうか?
glibcのdirent/opendir.cを見ると

DIR*
__opendir (const char *name)
{
 __set_errno (ENOSYS);
 return NULL;
}

などと書いてあって行き詰ってしまいました。

407:login:Penguin
07/12/03 04:25:46 hZn7k5Pb
>>406
OSはLinuxだよね?

408:login:Penguin
07/12/03 04:29:01 hZn7k5Pb
glibc-2.x.x/sysdeps/unix/opendir.c だと思われる。

409:406
07/12/03 12:14:14 tGDLCTrZ
>>408 ありがとうございます。

410:login:Penguin
07/12/08 00:56:20 Ypv55KO5
syslogのバッファの中身を設定ファイルでは
なく、作成したプログラムで行いたいのですが
どうすればよいの?



411:login:Penguin
07/12/08 01:09:58 3wxXE3Np
emacs code browserをつかいこなしてる人いませんか?

python2.4とpython2.5が両方はいってる環境で
boost.pythonでc++と連携させると実行時に
「なにかがない」
というエラーが頻発しないですか?



412:login:Penguin
07/12/08 02:36:59 AOgHL0gM
>>410
syslog(2)かsyslog(3)のどっちだよ。
それより何がしたいの?

413:login:Penguin
07/12/08 08:36:18 Ypv55KO5
>>412
syslogを監視したいと考えています。
swatchみたいな仕組みを作りたいなぁと


414:login:Penguin
07/12/09 19:30:32 kFipn9r2
Linuxで組込み機器の開発をしています。CPUはMIPS及びx86で、カーネルは2.6、swap領域は用意していません。
RAMは128MBです。下記状況で悩んでいます。

あるプロセスが大きめ(数十MB)のファイルを、読み込み専用(PROT_READのみ)でmmapし、その後そのファイル
を一通り読み込み、理由は不明なのですが、その後munmapせずに長期間mmapしたままにしています。

この状態でもし物理メモリ(free page)が足りなくなってきたら、ファイルのreadonly mmapに使用されていた
物理メモリは他の用途に使うために回収されるでしょうか?

カーネルの当該処理を行なう関数名だけでもかまいませんので、おしえてください。

415:login:Penguin
07/12/09 20:31:30 7Og5UxvH
>>414
Linuxの仕組みにこだわらず常識の範囲で答えるなら
swapがもし設定されておらず、メモリの確保を行ったプロセスが生きており、かつ新しいプログラムがメモリを要求し
メモリが足りないばあいは、そのようなエラーが出て後のプログラムが終了する。

確保エラーてきなそれで。


416:414
07/12/09 20:49:28 kFipn9r2
>>415 申し訳ありませんがLinuxの事情が知りたいです。

URLリンク(tree.celinuxforum.org)
こちらの資料のp.22「ページアウト」によると、
>(2)で物理メモリの空きがなかった場合、使用頻度の低いと思われるページを解放する。そのページの内容が変更されていなければそのまま破棄。
>変更されていればスワップデバイスに掃きだす。
とのことでした。

今回の場合、swapは存在しませんがページの内容もまた変更されていないので、
>この状態でもし物理メモリ(free page)が足りなくなってきたら、ファイルのreadonly mmapに使用されていた
>物理メモリは他の用途に使うために回収されるでしょうか?
この答えはyesになるかと思うのですがどうでしょうか。

ページアウトを行なっている関数を特定して調べてみますが、識者の方がいらっしゃいましたら教えてください。

417:login:Penguin
07/12/09 20:51:41 vfNigUJQ
DirtyにならなきゃSWAPは関係ないんじゃないか?
PRIVATEマップだったら予約はされるのかねえ?
試せ。

418:417
07/12/09 20:53:20 vfNigUJQ
>>416
読む前に書きました。Linuxの識者ではありません。

419:login:Penguin
07/12/09 21:56:02 7Og5UxvH
こ、これが本当なら、使用頻度の低いプロセスの確保しているページが勝手に破棄されるってこと?

なにやら「書き換えられているなら」の和訳に難ありと見た。


420:login:Penguin
07/12/09 21:59:02 kFipn9r2
>419
破棄されても、必要になり次第またディスクから読めばいいから、問題なくね?
ディスク上のファイルが書き換えられていたらちょっと困るかも試練が。。。


421:login:Penguin
07/12/09 22:13:07 7Og5UxvH
>>420
ディスク上にあるデータばかりとは限らなくね?
そのへんをどうしているのか...



422:login:Penguin
07/12/09 22:20:43 18jA1TtH
ファイルだったら、どこにあろうと開いてるからカーネルの管理下じゃね

423:login:Penguin
07/12/09 22:49:39 7Og5UxvH
なるほど、カーネルが管理しているページから破棄していくのか。
でもそうだとすると、この議題である「事前に確保されたページ」がカーネルの管理とは言い難いと思うのだが。


424:login:Penguin
07/12/09 23:08:38 18jA1TtH
>>423は何言ってるのか分からんから放っておいて、
>>416は資料に書いてある通りだと思うんだけどね。mmap()のシステムコール先が
どんなマークつけてメモリ確保するか、もうカーネルのソース見たほうが早くね?

425:login:Penguin
07/12/09 23:15:12 kFipn9r2
>>424
了解。そうします。

426:login:Penguin
07/12/13 21:59:11 q3gVVh+0
ローカルの時間を設定する
関数ってなんて名前なの?

427:login:Penguin
07/12/13 23:42:09 gQtBTxyv
settimeofday(2)

428:login:Penguin
07/12/13 23:57:28 GAau1spk
>ローカルの時間を設定する
>関数ってなんて名前なの?

いきなり時刻を変更していいなら、settimeofday(2)か、stime(2)。後者は秒単位でしか設定できない。

徐々に時計をあわせたいなら、adjtime(3)かadjtimex(2)。たぶん。よく知らなかったのでntpdateコマ
ンドをstraceして調べた範囲だが。

あと、ハードウェアが覚えている時刻を更新したいんだったら、/sbin/clock -w するか、/dev/rtcを
open(2)してioctl(RTC_SET_TIME)も必要。これもclockコマンドをstraceしただけだけど。



429:login:Penguin
07/12/14 00:06:11 q3gVVh+0
皆さんどうもです。

もう1つ聞きたいのですが
libe1000に近い機能って
最近のカーネルにないでしょうかね?

tigon3で使えないので泣き入ってますw

430:login:Penguin
07/12/14 09:58:59 kNHZHPst
もしかしてこっちのことだったりして

# cp /usr/share/zoneinfo/場所 /etc/localtime

あるいは環境変数 TZ

431:login:Penguin
07/12/15 02:47:51 W22BenPt
それを言うならasia/Sapporoを作ってDSTを有効にする方法じゃね?

432:login:Penguin
07/12/15 18:22:56 Rwz9MLlG
カーネルモジュールのメモリリークチェックどうやってる?
slab使ってれば、destroy()でチェックになるようだが、
ページ単位だと手がないよね

433:login:Penguin
07/12/15 23:53:57 Sm85/PPc
>>432
カーネルは信じる

434:login:Penguin
07/12/17 01:19:38 xnChskak
自分でカーネルモジュール書く場合とか。

435:login:Penguin
07/12/17 22:53:20 YaVSPejA
自分を信じる

436:login:Penguin
07/12/17 23:48:58 QaEFKCXk
/proc/meminfoをreadすると
遅くていらいらするので

実態を直接参照したいのですが
何を呼び出せば得られますか?

437:login:Penguin
07/12/18 00:47:54 wJyWvjqc
/usr/bin/freeも/proc/meminfoをopenしてreadしているようだ。
ちょっと思いつかない。


438:login:Penguin
07/12/18 01:04:48 E/zgaCho
もう1つ別の話になりますが

プロセスA,B,Cがあったときに
起動順序に依存関係があった場合や
不意の終了が起きたときの再起動等の
管理を含めた

プロセスの監視、管理ってみなさんどうしてますか?

439:login:Penguin
07/12/18 01:20:16 v3HQV+pu
>>436
昔はps(8)にしてもvmstat(8)にしても、その手の奴は nlist(3)を使って/dev/kmem を
スキャンしてカーネルの変数を直接読んだんだけど、それをするためのプログラムは
setuid rootが必要だった。

今でもできると思うけど、別にそんな速くなるかというと、微妙だと思うなぁ。大体なんで
そんなものをreadするのに速度が必要なのか。

今はカーネルのさまざまな変数をsysctl(2)や/procファイルシステムで見るように
なっているから、そっちが一般的だと思うが。


440:login:Penguin
07/12/18 01:24:13 v3HQV+pu
>>438
ここはプログラミングスレだから、そういうツールを紹介してほしい、じゃなくて、
そういうものを書きたい、という事だよね?
UNIXのプロセス管理、特にwaitシステムコールの仲間と、SIGCHLD周辺をよく
勉強するといいと思うよ。

441:login:Penguin
07/12/18 02:52:41 wJyWvjqc
>>439
OSは何ですか?Linuxだとnlistという関数はないっぽい
elfutilsの付属品で/usr/include/nlist.hというのがあるけどOSの情報をとるものではないようで。


442:login:Penguin
07/12/18 23:54:49 E/zgaCho
なぜPacket socketってRxのみなのですか?
Txにも対応して欲しいのですが

誰かなんとかなりそうってヒントくれませんか?

443:login:Penguin
07/12/19 09:05:58 3xyl6Kve
>>442
対応してるよ

444:login:Penguin
07/12/19 23:34:24 VN4RCfEY
>>443
そっちじゃなくてpacket_mmapだた

これは無理ですよね

無理ならstruct net_deviceを直接参照する
ようなコードをモジュールレベルで書きたいのですが
難しいですよね〜

445:login:Penguin
07/12/20 00:47:26 7G9805T8
eth0からeth7までをNIC1台の鯖に積んでるのですが
例えばeth0からeth4にパケットを転送するときって

send()するしかないですよね?
しかし5.6GBpsのコピーだとはんぱーねほど
負荷かかって困るw

たまにーマシンごとお亡くなりになってしまうし

446:login:Penguin
07/12/20 01:00:32 yx641/2O
チップセットがIntel以外とか、BIOSをageてないとかでないの

447:login:Penguin
07/12/20 01:12:56 gjGGDzJy
LinuxカーネルではRCUというデータ構造?が使われていると聞いたのですが、どんなものか
概要を知るにはどこが便利でしょうか?

448:login:Penguin
07/12/20 01:18:52 KxE4A1DD
>>445
いまいち状況がわかんないけど、sendfile(2)でもいいんじゃない。

449:login:Penguin
07/12/20 01:29:14 7G9805T8
>>448
in socket
out sokcet

これは無理ですよ。manページまともに読んでくれ

450:login:Penguin
07/12/20 01:29:48 KxE4A1DD
>>447
ん?これのことか?
URLリンク(git.kernel.org)

451:login:Penguin
07/12/21 01:40:37 A4fo/FEb
URLリンク(www.scaramanga.co.uk)

こいつを改造して、送信側もmmap-packetしたいのですが
スレ違いですかね?

mmapでバッファ取得しているからそのまま、フレームの
アドレスをsendfile()で送ればいい?



452:login:Penguin
07/12/26 23:54:48 S8Qi2r6E
ここで訊くのが合っているか判らないけど質問

デスクトップをクリックした、というイベント取得したいんだけどどうやるんだ?

453:login:Penguin
07/12/27 01:17:57 n3z1YHrf
何を言ってるのかイマイチわからんかったので、とりあえず
「XCheckMaskEventでXButtonPressMask」
と答えておく。

454:login:Penguin
07/12/27 01:21:58 W7wVcUmw
ポルナレフ同士かよ

455:login:Penguin
07/12/29 01:41:34 6hJfAH2B
CPU使用率(百分率で0〜100)はどこで取得できますか?

456:login:Penguin
07/12/29 02:13:14 JWUAvm2Q
/usr/lib/python2.5/site-packages/screenlets/sensors.py
を覗くと、下記のようになっている。あとは、そのまま使うなり、自分で作り直すなりどうぞ。

# calculate cpu-usage by values from /proc/stat
# (written by Bernd Wurst)
def get_cpu_load (old_cuse = [0]):
    # Let's try if we can calc system load.
    try:
        f = open("/proc/stat", "r")
        tmp = f.readlines(200)
        f.close()
    except:
        print "Failed to open /proc/stat"
        sys.exit(1)
    # 200 bytes should be enough because the information we
    # need ist typically stored in the first line. Info about individual
    # processors (not yet supported) is in the second (, ...?) line
    for line in tmp:
        if line[0:4] == "cpu ":
            reg = re.compile('[0-9]+')
            load_values = reg.findall(line)
            # extract values from /proc/stat
            cuse = int(load_values[0])
            csys = int(load_values[2])
            load = cuse + csys - old_cuse[0]
            #load = int(load / self.update_interval)
            old_cuse[0] = cuse + csys
    return load

457:login:Penguin
07/12/30 23:24:42 zPNvSTb5
wとかtopのソースコード嫁ば?

458:login:Penguin
07/12/31 06:20:04 PRFdFPv5
>>457
以外とめんどくさいよね。 なんで定期的にpollしてアプリで計算しなければ
ならないのかと。 カーネルで計算しといてくれて/proc/... で読めれば
便利なのに。


459:login:Penguin
08/01/01 12:50:10 o4AC5iuF
計算する必要がないことをカーネルにやらせないだろ

460:login:Penguin
08/01/01 16:13:09 3yCJg0HF
>>458
あんた、アホや

461:login:Penguin
08/01/01 16:31:40 nCKl90za
>>458
養護施設か精神科完備の病棟に
入所したほうがいいよ。

社会に迷惑かけてしまって、親族、
地域に迷惑をかけてしまうまえに
自分の意志で入所しなよ。

みんな喜ぶよ?


462:login:Penguin
08/01/01 19:50:29 VCekl7x7
>>458
そういうドライバを書けばいいよ。

キャラクタ型ドライバの入門としては
結構いい題材だと思う。

463:login:Penguin
08/01/01 22:36:49 3yCJg0HF
ちゃんとdoubleで計算するんだぞ

464:458
08/01/01 23:44:28 yGAu0gFM
>>462
ぐぐったらそのような計算をしているコードを見つけた。

drivers/cpufreq/cpufreq_ondemand.c


465:login:Penguin
08/01/06 23:48:28 5PoYdP/T
Linuxの[vdso]って、シグナルにも何か関係があるんでしたっけ?
おしえてください。

466:login:Penguin
08/01/07 00:49:32 p6NEl8Gg
#include <sys/inotify.h>

これに含まれているinotifyってシステムコールは
ファイルにシステムによっては使えないこともありますかね?

reiserfsで使えないようなw

467:login:Penguin
08/01/07 01:14:07 YbV5WNsA
今どきreiserfsを使っている人はいないと思うけど一応
サポートはされていないらしい

468:login:Penguin
08/01/07 22:17:39 p6NEl8Gg
使う人いねーのかよw

じゃあ何が主流なのw?

469:login:Penguin
08/01/08 00:11:17 dGquMe0p
今から使う人はいなくても
数年前にreiserfs入れてまだ使ってる人は結構いると思うよ。

470:login:Penguin
08/01/08 00:11:44 2ujb3qeo
>>467
?。普通に使うだろ(縁起悪いけど)

471:login:Penguin
08/01/08 00:38:19 obtHiT+g
>>468
ext3かXFSが主流ですw

472:login:Penguin
08/01/08 00:51:11 g3yhOYjE
>>470
縁起悪いの知ってて使う人いるんだw
Jail好きなのね

473:login:Penguin
08/01/08 01:05:49 2ujb3qeo
>>472
あんなことになったのは残念だけど、Hansはファイルシステム設計という
領域に留まらない天才の一人だったと思う。

でも天才であっても他はやっぱり人間だった。判決はまだ出てないけど、
背景を聞くにつれて、あれだけの能力があっても人生の幸せを掴むのは
また別の話なんだなと無常を感じたよ。

474:login:Penguin
08/01/08 01:33:05 XSbSibRZ
まぁ悪魔の犯罪者だからなぁ



475:login:Penguin
08/01/08 01:39:59 41aIleea
確定なの? 遺体は出たの?

476:login:Penguin
08/01/11 16:12:28 f8prPTXJ
LINUX勉強中の身なのですが・・・どなたか教えて下さい。
Windowsでは、GetPrivateProfileStringでiniファイルの読み込みをしていたのですが、
LINUXで使えなくて困っています。>146〜に同様の質問があったのですが、理解できませんでした。
write処理も無いのですよね?
関数が存在しないということは、LINUXではiniファイルという概念が無いという事でしょうか?
普段皆さんは、どのようにしているのですか?
環境はKNOPPIXです。






477:login:Penguin
08/01/11 16:15:55 JN9du13d
普通は環境変数から読んでくるんじゃない

478:476
08/01/11 16:38:30 f8prPTXJ
レスありがとうございます。
でも組込用LINUXで、自分自身で設定出来ない場合はどうするのでしょうか?
SDやUSBはあるので、アプリ実行時に、外部媒体へbatファイルを読みに行く
処理を追加し、環境変数を変更するのは低レベルでしょうか?


479:login:Penguin
08/01/11 16:43:43 wrx0pdGh
組み込み業界ってこんなやつばっかなん?

480:login:Penguin
08/01/11 16:46:44 HOV5kV5N
yaccとlex使って構文解析部分から作ってみるのもunix流の練習になるんじゃね?

481:login:Penguin
08/01/11 16:48:17 f8prPTXJ
組込もLINUXも初なので勘弁して下さい。


482:login:Penguin
08/01/11 16:51:25 /lhYIwjn
>>481
それ以前の問題じゃないの?

483:login:Penguin
08/01/11 16:54:52 f8prPTXJ
かなしす

484:login:Penguin
08/01/11 16:59:49 /lhYIwjn
できる人に教えてもらえば?

485:login:Penguin
08/01/11 17:01:30 f8prPTXJ
できるひと・・・いない

486:login:Penguin
08/01/11 17:06:04 /lhYIwjn
かわいそう...

487:login:Penguin
08/01/11 17:37:55 JN9du13d
perlを使って初期化ファイルから環境変数を作成する処理をラップすれば?
実行プログラム本体にはそれを読ませてやれば楽だろ

488:login:Penguin
08/01/11 17:38:55 qBjbfrrT
Linuxは初めてだって言ってるんだから、職種は関係ないだろ。
言語とか開発環境とか具体的に書いてもらわないとわからないけど、
GetPrivateProfileString()って言ったらWindowsのAPIだけど、プログラム中からコールするのかな?
Cの関数でいえばsetenv()、getenv()があるよね。
バッチレベルでいいならexportで登録しておくとか。

489:login:Penguin
08/01/11 17:42:30 JN9du13d
誰も職場内で方針示してやれないような仕事取ってくるなよなぁ〜w
痴呆が上だからIT業界は7Kだって言われる

490:login:Penguin
08/01/11 18:15:42 HOV5kV5N
組み込みlinuxでファイルI/Oを使って初期設定を読込み?
設定はヘッダーに入れてしまってハードコーディングじゃだめなのか?
初期設定を読ませるためだけに小さいとは言え余分なライブラリを使える
メモリと処理能力の余裕がある?

linux以前の問題な気がするなぁ、、、


491:login:Penguin
08/01/11 18:52:28 /lhYIwjn
書き込み fprintf
読み込み scanf
でやればいいんじゃないの?

492:login:Penguin
08/01/11 20:02:51 /lhYIwjn
scanf->fscanf

493:login:Penguin
08/01/11 23:11:20 MrZRBUAk
>>478
Linuxではそういう処理は起動スクリプトで行われる。 /etc/init.dの
中の他のアプリのスクリプトを参考に。

494:login:Penguin
08/01/12 02:32:22 FBfOnT6z
cmakeでwindowsとの互換をあくまで維持したい俺

495:478
08/01/12 08:28:35 DOVfiP6Z
昨日はショボンでしたが、
みなさんありがとうございました。
意見を参考に試してみます。
私含め、上司がレベル低いのは入社当初から知ってます。


496:login:Penguin
08/01/12 09:34:51 xcB/bLmK
>>495
Linux歴が浅いのでLinuxの作法を知らないのは当然だとして
それ以外の基礎知識や能力や言葉の使い方や文章の書き方は俺の数段上を行ってるなぁ
まぁ一緒にされたら迷惑だろうけど……。
最近稀に見る好印象な方だなぁと思った。



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

4044日前に更新/218 KB
担当:undef