Linuxプログラミング

このエントリーをはてなブックマークに追加
1login:Penguin
Linux のプログラミングに関する話題です
2login:Penguin:2005/06/06(月) 12:21:43 ID:NKTmDljP
2get!!!
3login:Penguin:2005/06/06(月) 19:56:41 ID:mvKKcD2C
4login:Penguin:2005/06/07(火) 08:48:19 ID:f398JVV/
Linux固有のプログラミングに関する話題です
5login:Penguin:2005/06/07(火) 09:19:02 ID:VuICZeLP
たとえば?
デバイスドライバの書き方とか使い方とか?
6login:Penguin:2005/06/07(火) 09:30:46 ID:M5U+LdKE















=================================== 終     了 ===================================















7login:Penguin:2005/06/07(火) 09:38:37 ID:6uaL4exB
デバイスドライバの書き方については何でも聞いてください。
答えますよ。
8login:Penguin:2005/06/07(火) 09:44:40 ID:fMg6lYHe
以後はこちらへ。

ディバイスドライバをハックしよう!
http://pc8.2ch.net/test/read.cgi/linux/1012407270/
9login:Penguin:2005/06/07(火) 09:52:21 ID:VuICZeLP
Linux特有のならいいんじゃね?
SIGCHLDを無効にして子供を自立させるのとかは
BSDでは推奨されてないとか、どういうことじゃね?
10login:Penguin:2005/06/08(水) 03:27:42 ID:efnI26oW
面白い話題なのでage
これでLinuxにバリバリ依存したプログラミングの話が出来る
11login:Penguin:2005/06/08(水) 07:03:28 ID:Ur9S3tqL
立て逃げか( ゚д゚)、ペッ
12login:Penguin:2005/06/08(水) 08:37:32 ID:CK8/wpZS
このスレッドを見てGCCを入れました!
大変参考になりました
1さんありがとうございました
13login:Penguin:2005/06/08(水) 09:06:33 ID:0ismwF6c
>>1が立て逃げしたため














=================================== 終     了 ===================================















14login:Penguin:2005/06/08(水) 20:28:33 ID:tz0qcZo4
cとかc++やればいいのでしょか>?
15login:Penguin:2005/06/09(木) 11:02:31 ID:fhCNZsTJ
じゃ、ポータブルでないLinux特有の拡張があったらあげてみろや。
16login:Penguin:2005/06/13(月) 02:37:33 ID:88uqHA46
>>9とか
17login:Penguin:2005/06/13(月) 23:13:42 ID:2SiW65Xk
Qt絡みの話は駄目?
18login:Penguin:2005/06/16(木) 11:59:14 ID:jlxEkJcI
QtはLinuxだけじゃないから、それだけじゃダメだけど
QtでのLinux特有のトラブルの話ならOKじゃね?
19login:Penguin:2005/06/16(木) 13:36:13 ID:tbzXPG2W
redhat v4 のサポート内容があまりにもへぼい件について
20login:Penguin:2005/06/16(木) 19:49:00 ID:fK4dnybR
プログラミングの学習環境をLinuxで整えるにはどのようなソフトをインストールするべきでしょうか?
そしてどのように学習していけばよいでしょうか?
http://www.alpha.co.jp/knoppix/edu/
KNOPPIX Eduを使用したほうが早いでしょうか?

>>19さんはお金を払って買っているんですか?リッチマンですね。
21login:Penguin:2005/06/16(木) 22:31:40 ID:W6FD7eJl
>>20

> どのようなソフトをインストールするべきでしょうか?

用途によるが C/C++ とかなら
Eclipse with CDT(Javaなので遅いが比較的マシ)
後は emacs かそのへんのテキストエディタ

>> プログラミングの学習環境をLinuxで整えるには
>>そしてどのように学習していけばよいでしょうか?

ところで何のプログラムをしたいのか?



22login:Penguin:2005/06/16(木) 23:31:10 ID:NC8ArA+p
>>21
vimじゃダメ?
23login:Penguin:2005/06/16(木) 23:38:02 ID:0PTeLZap
>>22
どうぞお好みで。
24login:Penguin:2005/06/17(金) 09:46:40 ID:UHDWQlXq
・MSの評判を長年擁護してきた「マンチキン」
http://web.archive.org/web/20000817184119/http://www.zdnet.co.jp/magazine/pcmag/9910/jd991025.html
・MSのマーケティング戦略 「FUD」
http://www.yamdas.org/column/technique/fuddefj.html
・MSが“組織票”で投票操作
http://web.archive.org/web/20020112151956/http://www.zdnet.co.jp/news/0201/10/e_vote.html
・MS「Halo伝道師」を勧誘
http://cocoa.2ch.net/famicom/kako/1019/10192/1019242704.html
・MS「マックからの乗り換え体験談」は社員でした
http://hotwired.goo.ne.jp/news/news/business/story/20021016101.html
・MS、ブラジル政府高官のFUD批判に名誉毀損の訴え
http://www.itmedia.co.jp/enterprise/articles/0406/30/news040.html
・世界最大の某ソフト会社がお得意とするマーケティング手法。
http://www.geocities.co.jp/SiliconValley/5634/t82A6_0009.html
25login:Penguin:2005/06/17(金) 11:49:29 ID:r2abT8Mn
>>20
初心者ならemacsだろう。
開発用エディタとしては最高。
あらゆる言語のソースモードをもっている。
ソースの先頭に//-*- C++ -*-などと書いてくれたまえ。
それでそのソースを開くときにその言語のモードになる。

次に、ディレクトリ構成とMakefileについて深く学んでくれ。
共有ライブラリ、スタティックライブラリ、
ダイナミックリンク、ダイナミックローディング
についても学んでくれ。

その間にゴミのような小さいプログラムを沢山書いてください。

2620:2005/06/17(金) 20:32:36 ID:u6tR/1dR
>>21 >>25 レスありがとうございました。
インスコしたてでLinux素人ですが、少しずつ勉強して行きます。
いまはperlを勉強していますが、いずれは他のプログラム言語を学習したいと思っています。
27login:Penguin:2005/06/25(土) 21:47:43 ID:7teW5l8w
Rubyってどうよ。
28login:Penguin:2005/06/29(水) 02:04:11 ID:rSbPN/4/
デバイスドライバを作るときのテストに便利なアレ
29login:Penguin:2005/07/01(金) 09:29:19 ID:xK97s0Sp
valgrindでメモリリークをチェックできるけど、
CGIプログラムでPATH_INFOとかPOSTを使うプログラムはどうチェックしたら良いの?
他のプログラム同様にやるだけで良いんだろうか。
30login:Penguin:2005/07/03(日) 02:34:03 ID:387/J7NO
CGIなら多少漏れたところで、プロセスが直ぐ死ぬから問題ないと思うがどうか。
31login:Penguin:2005/07/03(日) 03:00:50 ID:vXmg8Wmb
    _  ∩
  ( ゚∀゚)彡 ioperm ! ioperm !
  (  ⊂彡
   |   | 
   し ⌒J
32login:Penguin:2005/07/03(日) 22:51:27 ID:W/EOLQ8V
LSBの話でもするか?
33login:Penguin:2005/07/05(火) 21:34:46 ID:eL9Y9U6k
valgrindでのメモリリークチェックについてなんだけど、
valgrind --leak-check=yes ./indexer
でやると1blocks 8bytesのstill reachableとか出てたので
valgrind --leak-check=yes --show-reachable=yes -v ./indexer
として実行したところ、メッセージが大量に出てきたんだけど、とりあえず
No malloc'd blocks -- no leaks are possible.
という行があったら問題無しと見てよい?
34login:Penguin:2005/07/06(水) 23:53:51 ID:h/w15dTK
ところでみんな何作ってるんだ?
35login:Penguin:2005/07/15(金) 10:43:45 ID:r+pZSuw6
kmallocって非プリエンプティブなの?
36login:Penguin:2005/07/15(金) 19:48:06 ID:I6G9y00D
モードによって変わったような気がするが。
いつもGFP_ATOMICしか使わんので忘れた。
37login:Penguin:2005/07/16(土) 16:07:15 ID:YgyQE1T3
>>36
アトミックとカーネルってなにがどう違うんだっけ?
3838:2005/07/16(土) 23:47:35 ID:iwY4tsZJ
プログラミングをしていて、分からない点があるんですけど、
どなたか分かる人はいますか〜〜??☆ お願いします(><)
39login:Penguin:2005/07/16(土) 23:49:36 ID:DO52ZlNO
>>38
エスパー募集か?
4040:2005/07/16(土) 23:58:35 ID:iwY4tsZJ
どうしてもわからないプログラムがあって><
41login:Penguin:2005/07/17(日) 01:47:35 ID:kE3RiDzU
>>40
私も同様の状態で悩んでいます。
もし解決されましたら、解決方法等書き込んでいただけると助かります。
42login:Penguin:2005/07/17(日) 16:39:06 ID:q+4CFsL5
nasmの良い参考書ないでしょうか?
43login:Penguin:2005/07/17(日) 17:09:00 ID:D1ufqS5v
Linuxでnasmを使う、なんて特殊状況のための良い参考書なんて
なさそうに思いますが、ためしに
http://www.data-house.co.jp/book/8293.html
これでも買ってみたらどうでしょう?
44_:2005/07/18(月) 23:50:12 ID:5+oTT0Qf
書籍では「Linuxプログラミング」 SOFTBANKがお薦めです。一通り学べます。
45_:2005/07/18(月) 23:50:54 ID:5+oTT0Qf
あ、nasmの書籍ではないです。流れ見てなかった..orz
46login:Penguin:2005/07/23(土) 13:47:30 ID:/ZYw3AUV
LinuxでCプログラミングの情報は、書籍やネットにもたくさんあるが、
LinuxとC++だと初心者用の情報がすくない。ヘルプ。
47login:Penguin:2005/07/23(土) 21:15:58 ID:qedpaVuk
>>46
「Linux で C プログラミングの情報」 + 「C++言語の情報」
ではダメなのかしら?
48login:Penguin:2005/07/28(木) 03:00:09 ID:6pUiA/iF
nasmといえばZSNESだろ、これのためにあるアセンブラじゃないの?
LinuxでならGAS使えば?
49login:Penguin:2005/07/31(日) 00:04:18 ID:0Amwd3lA
UNIXドメインソケットを使ったサンプルプログラムある?
50login:Penguin:2005/07/31(日) 00:15:31 ID:3VxENWOd
ちょっと借りますね
ーーーーーーーーーーーー
ねこのえさ
サランラップ
麦茶
51login:Penguin:2005/07/31(日) 00:46:47 ID:0Amwd3lA
socket関数でAF_UNIXを指定すればUNIXドメインソケットが出来ますが
bind方法がわかりません
52login:Penguin:2005/07/31(日) 00:50:39 ID:0Amwd3lA
http://www.linux.or.jp/JM/html/LDP_man-pages/man7/unix.7.html
を読んでbind方法がわかりました
ありがとうございました
53login:Penguin:2005/07/31(日) 04:54:18 ID:uaSMumyk
お礼を言われる筋子は素敵な筋子だ
54login:Penguin:2005/08/05(金) 00:10:27 ID:6XxyXksp
今のユーザで、selectで待てるソケット数の上限を
調べる方法を教えてください
55login:Penguin:2005/08/05(金) 19:37:37 ID:0CoAsVSB
FD_SETSIZEとか、RLIMIT_NOFILEとか?
56login:Penguin:2005/08/05(金) 19:57:55 ID:6XxyXksp
>>55
FD_SETSIZEで判明しました。
デフォルトは1024なんすね。

でもなんでtime.hで定義してるんだろ・・・不思議
57login:Penguin:2005/08/06(土) 14:29:00 ID:zxTk5X4j
Visual Basic for Linuxありませんか?
58login:Penguin:2005/08/06(土) 16:56:51 ID:EsGlAU9q
現在進行形の開発者たちはどうやってGUI作ってるの?
ボタンの位置とかをピクセル単位で座標をソースに書いてるの?
59login:Penguin:2005/08/06(土) 19:40:34 ID:QVH3pN5M
>58
GladeとかQT Designerとか。
60login:Penguin:2005/08/07(日) 01:56:10 ID:3ozY2FRR
gtkならvboxとかのコンテナを使えば座標指定は特に必要ないよ
61login:Penguin:2005/10/06(木) 18:12:55 ID:ZATs0tPd
まぁ、聞いてくれよ。
daemon プログラムの作成手法を調べようと思いググっていたら、とある海外のサイトに
掲示板形式の 「 教えてくれ 」−「 教えてやる 」 ページが見つかった。

( 以下、和訳 )
      質問者:どなたか、デーモンのプログラミング方法を教えてください。
      回答者:daemon() を呼べ。

俺はもー大爆笑でさ。 いやぁ、どこの国にも、ねらーみたいな人種はいるんだな、と。
このシュールな回答者を、俺は心のなかで絶賛したんだヨ。
ところが、だ。 それに引き続くレスを読み進めると ・・・

      質問者:daemon() は、プラットホーム依存だと理解している。
            プラットホームに依存しない方法を求む。
      回答者:まず最初に fork() して 親プロセスは exit() して ・・・(以下、略)

あれっ? daemon() ってネタじゃねーの? ホントに有るの?
で、linux.or.jp 行って調べたら、しっかり daemon() が JM に載ってた。

お蔭で、ほんの10分で自作デーモンが出来上がったよ。
いやー、俺すげービックリした。 最近のプログラミングって、つくづく簡単になったな。
62login:Penguin:2005/10/06(木) 20:41:58 ID:Hi1ptbaM
fghack
63login:Penguin:2005/10/07(金) 01:47:36 ID:SjqsnuRY
>>61
デーモン化すること自体は、もともとたいした手間でもないけどな。
> 回答者:まず最初に fork() して 親プロセスは exit() して ・・・(以下、略)
の「以下、略」にいろいろ書いてあったんだろうけど、その中で必須なのは
setsid()することだけだろ? カレントディレクトリをルートに変更して(以下略)
までやったほうが行儀いいけどな。

制御端末から切り離さなきゃならないわけでもない、という話もある。
それを言うと、なにもやらなくていい、ということになるがw
6461:2005/10/07(金) 08:25:10 ID:DGEJCqAt
>>63
いやぁ、俺のデーモンってのは、こうなんだ。
常時稼動させておきたいあるプログラムがあるんだが、これが外部機器の影響で数日に
1度くらいの頻度で落ちる。
そこで、落ちたら自動的に再起動させるデーモンを作ろうと考えた。
( inittab に respawn 付きで記述したコマンドのような動作 )
     1) コマンドライン引数として与えられた他のプログラムを、子プロセスとして exec( ) する。
     2) 親プロセスは、そのプログラム ( 子プロセス ) の終了を wait( )。
     3) wait( ) からリターンしたら ( 子プロセス ) が終了したら、1) に戻る。
っていう単純なもの。 だから、プログラムコードの大部分は、daemon 化する処理に
なるはずだった。
それが、daemon( ) の1行で済んじゃったもんだから、拍子抜けって訳さ。 こんな
「 ネタ 」 としか思えないサブルーチンがあるなんて、思いもよらなかったからな。

>>62
今、調査中だが ・・・ 「 もっと簡単な方法があったつーことか? 」 な悪寒 ・・・
65login:Penguin:2005/10/08(土) 01:19:33 ID:cQUyfIlR
>>64
おいおい。
そんな監視するだけのプログラムをデーモンにするこたねぇだろよ。
cronに任せて毎n分間隔で監視してきゃええじゃねぇかな?

あと、こんな感じでできるような気がする。
1.親プロセスを起動する。
2.親プロセスからforkして、その先で「外部機器の影響で落ちるプログラム」をexecする。
3.親プロセスは、子プロセスのsignalを受け取るようにする。(落ちたら。すかさず2をする。)
4.あとはすること無いと思うので、waitしてる。
66login:Penguin:2005/10/08(土) 01:48:38 ID:EUp0YkR6
nohupでもぇぇじゃないか、ぇぇじゃないか
67login:Penguin:2005/10/08(土) 16:43:26 ID:QksVjeD+
kinuxのディストリ別に、標準コマンドのソースコードが違いますが(ソースの中のヘッダファイルの名前が違ったり)
皆さんのプログラミングされてるOSは何ですか?

deb系 ソースが見つけ易い
debian 
ubuntu gnomeデスクトップが整ってる

RPM系
redhat9 参考書のプログラム実行環境だったりする
fedora 
centOS 鯖に向いてる感じ

BSD系、Soraris、RHELは、
68login:Penguin:2005/10/08(土) 16:48:54 ID:QksVjeD+
どうなのですかね? 板違いなので除きましたが・・・

RPM系
vine 理系の初学者に向いている。emacsも日本語。
69login:Penguin:2005/10/13(木) 21:35:12 ID:7X6OHKXJ
>>61
daemon(3)はBSD 4.4由来のライブラリ関数で、1993年頃からあるよ。

通常終了するはずが無い常駐プログラムの終了を監視して、数秒以内に
再起動したい状況は結構あるよね。折れもほとんど同じようなコンセプトの
もの(Cで100行のプログラム)を作って使ってるよ。daemon化はしてないが、
特に問題にはなってないな。

探したらこんなの出てきた。こんなに高機能なものはいらないけど、自作
したものの保守が面倒なら、既にあるものを使っておくのがいいかも。
http://www.libslack.org/daemon/
70login:Penguin:2005/10/13(木) 22:19:33 ID:sLBZYW2l
daemontools知らない?
71login:Penguin:2005/10/14(金) 11:03:10 ID:qfnLX5Yn
>>70
知ってるよ
でも板違いじゃない?
72login:Penguin:2005/11/16(水) 10:22:29 ID:Bj7GCSe+
Cでファイルの更新時間を変更するにはどうしたらいいでしょうか
system("touch hoge"); はちょっとダサいかなと思って
73login:Penguin:2005/11/16(水) 11:24:04 ID:2LwI+36C
>>72
touchのソースを読もうと思わんのかい?

utime
74login:Penguin:2006/03/25(土) 00:11:00 ID:yDjJAEUK
gentoo amd64(glibc2.4)でinoftyを使おうと思って、テストプログラムをコンパイルしたら、
/tmp/cc8EI4vn.o: In function `main':
test2.c:(.text+0x5): warning: warning: inotify_init is not implemented and will always fail
と警告が出ます。そして、確かに失敗します。

gaminのソース見たら、自分でsyscall使ってinotify関係を呼び出していました。
このやり方は、正しいやり方なのか、現状の抜け道みたいな物なのでしょうか?
7574:2006/03/25(土) 20:42:13 ID:yDjJAEUK
glibcをコンパイルするときに参照するカーネルのヘッダを新しくしたら
使えるようになりました。
76login:Penguin:2006/03/32(土) 22:30:19 ID:S101QXQ7
ハードクロックをinb,outb使って読むデーモンを作るんだが、
なんでhwclock(1)が繰り返し読み出しを行っているか判らな
い。
知ってる人いますか?
77login:Penguin:2006/04/02(日) 01:39:30 ID:lgKbQ3Mw
読んでいる間に時刻変わったら悲惨な事になるべ。
78login:Penguin:2006/04/29(土) 10:55:01 ID:VLPUOXfX
FUSE ようのプログラムを作成しているのですがちょっと詰まっています。
プログラム側に独自の引数を渡すには普通どうやるんでしょうか。

FUSE 用プログラムに渡された引数は、FUSE のライブラリがパースするように
なっているので、独自の引数をつけると

fuse: invalid argument

と表示されてしまいます。

どなたかアドバイスお願いします.
79login:Penguin:2006/05/27(土) 19:38:21 ID:9Jcfr6TV
CentOS 4.3でプログラミングを勉強し始めたんですが、XWindowsのコンパイルがうまくいきません。
単純に
%g++ -lX11
ではだめなんでしょうか?
手元の本には、こうするということ以上に何も書いていないですし、ググってもわからなかったのでどなたかお助けください。お願いします
80login:Penguin:2006/05/27(土) 21:14:28 ID:B4V3D54O
??
わけわかめ。
エラーさらせ。
81login:Penguin:2006/05/28(日) 00:57:22 ID:TVBnZUdH
リンクするライブラリを書く位置には意味があるよ。
82login:Penguin:2006/09/07(木) 13:46:38 ID:Ps6xV3hc
usleep(1)で実際に寝てた時間を計測したいんだけど
なんか簡単でそこそこ精度のいい法王ある?
83login:Penguin:2006/09/07(木) 13:55:20 ID:O+EIzNPQ
環境依存でいいならRTC
84login:Penguin:2006/09/07(木) 21:35:17 ID:8QwKVwyX
x86ならTSC見ればいいんでないかい。
85login:Penguin:2006/09/08(金) 04:13:14 ID:KhmQSVSr
環境非依存なら普通にgettimeofday

TSCは
#include <asm/msr.h>
rdtsc
rdtscl
rdtscll
あたり
86login:Penguin:2006/11/26(日) 04:21:53 ID:2cZaftoe
ルート権限で突っ走るプログラムを書いてるんだけど、
一般ユーザが投げるシグナル(なんでもいい)を受けたいのに
Operation not permitted って出て投げてもらうことができません。
どうしたらいいでしょうか
87login:Penguin:2006/11/26(日) 11:23:31 ID:SPqfyYuX
一般ユーザが実行すると、実効ユーザをrootにしてシグナルを送るプログラムを書く
88login:Penguin:2006/12/08(金) 00:30:08 ID:c3V3Q9m7
たとえばライブラリ hoge1.a と hoge2.a をリンクして hoge3.a
を作る方法を教えて。
89login:Penguin:2006/12/09(土) 01:47:55 ID:7wC+QgEB
C/C++での2重起動防止について教えてください
90login:Penguin:2006/12/09(土) 02:33:35 ID:Nt4zOwfD
どういう条件での話だか分からんが。
うっかりミス防止ってことなら、flock()でも使えばいいんでねえの?
9189:2006/12/09(土) 02:52:03 ID:7wC+QgEB
exeとかの2重起動防止だったんだけど。
flock()でいいんかな。よく知らないのでわかりません。
open()使うんだろうけど、
これって実行プログラム内でそのプログラムのファイルディスクリプタって得られるものなのかね
92login:Penguin:2006/12/09(土) 03:24:05 ID:vHGg2QAV
適当なファイルでいいじゃん
93login:Penguin:2006/12/09(土) 03:32:08 ID:54k/0nQv
ロックファイル使うとかプロセス名から判断するとか、あるいはDBUS使うとか。
ロックファイル使うやり方が一番簡単。後の二つは書いといてなんだが
よく知らんので、もしかしたら出来ないかもしれない。
実行ファイルそのものをflock()はやったことないな。
後、ディスクリプタはプロセスごとに持ってるものだし、
実行ファイルそのもののディスクリプタを得るにはargv[0]からopen()するしかないと思う。
9489:2006/12/09(土) 03:32:38 ID:7wC+QgEB
おまえ天才
9589:2006/12/09(土) 03:34:06 ID:7wC+QgEB
てきとうなファイルでやればいいとは気づかなかったよ
96login:Penguin:2006/12/09(土) 09:48:52 ID:Nt4zOwfD
そう、適当なファイルでやる。
シグナルを送る際の便宜のために、自分のPIDを書いた hoge.pid みたいな
ファイルを作ることが良くあるが、そいつにロックかけるというのがありがち。
9789:2006/12/09(土) 23:28:20 ID:ct3MaVHM
ロックファイルを使う方法はなんとなくわかったから、実行ファイルにflock()を実験してみた。
そしたら実行ファイル自体にflock()はできるみたい。
実際、実行ファイルをflock()していいのか分からないけど、
下のプログラムで2重起動防止は成功した。

int main(int argc, char *argv[]){
    int fd = open(argv[0], O_RDONLY);
    if(fd == -1){
        return 0;
    }
    if(flock(fd, LOCK_EX | LOCK_NB) == -1){
        return 0;
    }

    //処理

    flock(fd, LOCK_UN);
    close(fd);
    return 0;
}

だめな部分あったら教えてください。
98login:Penguin:2006/12/09(土) 23:35:00 ID:vHGg2QAV
-1が帰ってくるところってみんな == -1 でやってる?
オレはなぜかしらんが < 0 でやることが多い。
いつからそうなったのか自分でもわからないが
99login:Penguin:2006/12/09(土) 23:51:28 ID:PZAeSbKs
-1以外に負数がエラー番号として使われる関数がしばしばあるみたいだから、
全てのエラーに対して特定の処理する場合は<を使って、
-1のエラーのみ考慮する場合は==を使ってるよ。



と負数で-1以外のエラーを吐く関数を知らない俺がマジレス。
100login:Penguin:2006/12/10(日) 05:24:03 ID:eKPQDbb7
>>97
実行ファイルが複数ある場合はその数だけ実行できるが
それで目的に合っているなら問題ない。
101login:Penguin:2006/12/20(水) 09:38:29 ID:wUoDfaxG
sjisやらeucやらのマルチバイト系から
UTF-8やらUTF-16に対応させたいんだけど、linuxって
windowsみたいな、便利なAPIは用意されてるの?

やっぱり多言語化じゃ、windowsの圧勝かな、かな?
102login:Penguin:2006/12/20(水) 20:34:08 ID:23Zjx0Yh
釣りなのか無知をひけらかしたいのかどっちだ?
103login:Penguin:2006/12/21(木) 15:09:32 ID:r43DQSG8
>>102
負け惜しみかい?
あるならちゃんと教えてみてくれないかな、かな?
104login:Penguin:2006/12/21(木) 15:18:54 ID:wTdtL7fh
キモイ無知だ
105login:Penguin:2006/12/21(木) 16:03:21 ID:I4fXsxTd
iconv ってのをご存知ないかね?
106login:Penguin:2006/12/21(木) 16:34:59 ID:RWqIsAug
>>101
最近のWindowsってシステムフォントやヘルプを他言語で表示できるの?
ようこそ画面もドイツ語、韓国語、中国語、アラビア文字などで表示できちゃうわけ?

107login:Penguin:2006/12/21(木) 17:09:59 ID:c78SoGib
>>103
べつに勝ちとかじゃないだろすきなほうを使えばいいんだから
108login:Penguin:2006/12/27(水) 16:50:02 ID:jeKAmukV
>>103
うわ、キモ。
厨房は受験勉強でもしててくれ
109login:Penguin:2006/12/29(金) 00:14:31 ID:+0PGL+hD
code::blocks 使ってる人いる?
実行でコマンドラインで引数渡せん。
110login:Penguin:2007/01/22(月) 07:29:18 ID:rYp+9CMw
CentOS 4.4 x86_64で以下のようなプログラムを走らせると、
errno=22(Invalid argument) のエラーになってしまいます。

/dev/hda8(/home) でQuotaが設定されててオンになってることは確認済みです。
UID 500のユーザも存在します。
repquota -a や edquota admin も問題ありません。

どなたか原因分かりませんか?

#include <errno.h>
#include <sys/quota.h>
int main( void ) {
int result;
struct dqblk quotaStatus;
result = quotactl( QCMD(Q_GETQUOTA,USRQUOTA), "/dev/hda8", 500, (caddr_t)"aStatus );
printf("result: %d, errno: %d: %s¥n", result, errno, strerror(errno));
return 0;
}
111110:2007/01/22(月) 07:32:07 ID:rYp+9CMw
quotaの設定は以下のような手順で行いました。

/etc/fstab の /home のところに defaults,noatime,usrquota,grpquota を記述
mount -o remount /home
touch /home/aquota.user
touch /home/aquota.group
chmod 600 /home/aquota.*
quotacheck -mugv /home
quotaon -auvg
112110:2007/01/23(火) 06:07:17 ID:4TCpYdze
自己解決しました。

#include <sys/quota.h> の前に
#define _LINUX_QUOTA_VERSION 2 を付けてやればOKでした。
113login:Penguin:2007/01/30(火) 06:59:32 ID:HbwLMV4J
ほとんどはリナックスに関係無いね(w
114login:Penguin:2007/04/01(日) 23:09:56 ID:u9bTw6ly
C言語で、ファイルが存在するかどうか確認したいんだけど
openはしたくない。 どうしたらいいかな

stat使うしかない?
115login:Penguin:2007/04/02(月) 00:01:43 ID:ZonqDA/5
readdir(3)でもaccess(2)でもstat(2)でもご自由に。
116login:Penguin:2007/04/14(土) 23:35:37 ID:rDs8AFmH
kernel2.6でopenにO_DIRECTを付けてwriteした場合

端数の面倒は自分でみないといけないと思うのですが、一般的にどのように処理すべきなんでしょうか。

まず、自前でバッファを実装するのは当然として、
・端数が生じてまだデータが到着する場合
・端数が生じてデータが到着しない場合(close()する)

他のケースは、倍数に合わせて書き込めばいいので問題ないのですが上記2つの場合
どうすればいいんでしょうか?
117login:Penguin:2007/04/16(月) 00:05:08 ID:nIV1W8As
>>116
自分の都合のいいように書く。

・端数が生じてまだデータが到着する場合
1) とりあえず1セクタ分書く。その後、到着した時点でもう一度書く。
最初に書き込む際の端数は、どうせすぐに上書きするので気にしない。
2) 到着するのを待ってから1セクタ分書く。

・端数が生じてデータが到着しない場合(close()する)
仕方がないので1セクタ分書く。端数の部分は
1)破壊してはいけないのであれば、読んでから変更部分のに更新して上書きする。
2)破壊していいのなら、気にしないでかく。気になるなら0で埋めておく。

118login:Penguin:2007/04/17(火) 01:39:28 ID:IktG2dol
>>117殿
・端数が生じてまだデータが到着する場合
まぁバッファにキャッシュでもして貯めておけばOKってことで解決しました。

・端数が生じてデータが到着しない場合(close()する)
破壊したくないので端数は気にしないで書くことでいいのですが、O_DIRECTの仕様がいまいち判ってないのですが、端数分中途半端に書き出すとセグ落ちしますよね?必ず埋めて書くしかないのでしょうか?
119login:Penguin:2007/04/26(木) 20:17:05 ID:FYgLMe9p
組み込みLinuxで開発やってます。

VSync割り込みごとにアプリで処理したいのですが、
アプリ処理中にHDDとかに長時間アクセス行くと、
IDEドライバが動きまくってアプリの処理が抜けます。

H/Wは性能アップできないのですが、なんか
いい方法ないでしょうか?
120login:Penguin:2007/04/26(木) 20:57:19 ID:GX2/mssv
>>119
つ IngoのRTパッチ
121login:Penguin:2007/04/27(金) 23:58:09 ID:+IAxaDn3
>>120
カーネルは2.4です。色々あって2.6にはできないッス。
RT Linuxを使うわけにもいかず、八方塞です…。
122login:Penguin:2007/04/28(土) 00:01:54 ID:KteSqW/E
プロプラは相当のコストがかかることが分かって勉強になっただろ?
123login:Penguin:2007/05/08(火) 10:25:16 ID:Lkj+Xxxr
どういうときにfloatよりdoubleの方が速くなるの?
124login:Penguin:2007/05/08(火) 10:37:26 ID:/9NhRNOL
CPUは?
今時のx86なら普通に計算すればそうなる。
125login:Penguin:2007/05/08(火) 23:45:54 ID:h0icA70t
>>123
最近のCPUではバウンダリの関係で、そうなる。
が、SSEで最適化されてるとfloat4つでパックされるので必ずしもdoubleの方がいいとも言いきれん。
126login:Penguin:2007/05/21(月) 02:10:20 ID:/b/2zTxh
「The Linux Programmer’s Toolbox」っていう本、
目次見た感じだと非常によさげなんだけどなんで話題になってなんでしょうか?

http://vig.prenhall.com/catalog/academic/product/0,1144,0132198576-TOC,00.html
127login:Penguin:2007/05/21(月) 07:54:30 ID:usFZwaQm
目次だけを見て判断すると、初心者が体系的な知識を得るのに良さそうだけど、
このスレッドの話題のほとんどはその本の内容よりも先のところにあるように思う。

だからといってスレ違いだとも思わんが、どちらかといえば
http://pc11.2ch.net/test/read.cgi/linux/1172765114/l50
のほうが向いている話題かもしれん。
128login:Penguin:2007/05/21(月) 08:40:13 ID:/b/2zTxh
誘導ども。そちらにいってみます.
129login:Penguin:2007/05/24(木) 14:06:26 ID:dalBD+dF
すいません、C板からきますた。
Linux上のgccで書いているのですが、
たとえばpid=1234のプロセスがまだ生きているかどうかを調べるには
どうしたらいいのでしょうか?

kill(pid, SIGALRM)とかやって応答を見るのは一般的にありなのでしょうか?
130login:Penguin:2007/05/24(木) 14:29:03 ID:2toxbSyc
Linux限定でよければ
stat("/proc/1234", &foo)
とか。
131login:Penguin:2007/05/24(木) 14:34:18 ID:dalBD+dF
>>130
なるほど。サンクスです。
132login:Penguin:2007/05/24(木) 20:07:47 ID:Pjfa+z+T
もう解決したようだが
>kill(pid, SIGALRM)とかやって応答を見る
はヤバ過ぎるぞ。アラームの時計はプロセスにつき1個しか持ってないんだから。
133login:Penguin:2007/05/24(木) 23:14:55 ID:ntrDfnOs
>>129
killで調べるときは kill(pid, 0) とする
134login:Penguin:2007/05/29(火) 08:41:32 ID:5ePsYsOB
プログラミング板でLinuxのAPIが調べられるサイトがあったら
教えてくださいと書き込んだら笑われてしまった。なんで?
135login:Penguin:2007/05/29(火) 10:24:26 ID:wH2lmnhl
ど素人丸出しで尚且つ意味不明だからじゃないだろうか。

例えば「プログラミングの方法を教えてください」くらいに曖昧で、
ドライバからWebアプリまでどんなことをしたいのか質問した本人にも
分からないような状態に似ている、といえば分かってもらえるかな。

もう少し状況を補足してどんなことを望んでいるのか具体的に
質問すべきだろうな。
136login:Penguin:2007/05/29(火) 11:42:54 ID:6pYOgoyb
>>134
システムコールで調べてみろよ。
137login:Penguin:2007/05/29(火) 12:42:30 ID:d+4MTQ2i
138login:Penguin:2007/05/29(火) 19:58:36 ID:JJGfUn4S
「LinuxのAPI」を杓子定規に解釈すれば>>136なんだろうが、
質問者が望んでるのは多分違うだろうと思うよなw
139login:Penguin:2007/05/29(火) 23:22:52 ID:euTw/pCb
http://www.linux.or.jp/JM/INDEX/ldp.html
まあこんなとこかい?
140login:Penguin:2007/05/30(水) 12:39:54 ID:NGuDmB0U
サン(゚∀゚)キュー!!
141login:Penguin:2007/06/04(月) 20:26:47 ID:o//m8uq5
>>134

man open
142login:Penguin:2007/06/04(月) 21:07:45 ID:ZrYzLiHb
マン○オープン
143login:Penguin:2007/06/14(木) 19:54:09 ID:UbI2kDRt
1プロセスあたりのスレッドの最大数が知りたかったため、
getconf -a
を実行して、PTHREAD_THREADS_MAXの値を知ろうとしました。
しかし、そこだけブランクで表示されています。どうしたらいいのでしょうか?
OSはCentOS 5.0です。
144login:Penguin:2007/06/15(金) 23:19:32 ID:Sf3Vnle8

SuperCon2007 ― 夏の電脳甲子園
http://pc11.2ch.net/test/read.cgi/tech/1181916316/

1 :デフォルトの名無しさん :2007/06/15(金) 23:05:16
がんばれっ!天才高校生諸君

スーパーコンピューティング・コンテストSuperConは、
高校生がスーパーコンピューターを使って、プログラミングのアイデアを競う大会です
今年は阪大に今年導入された最新のスーパーコンピューターを使います
プログラミング大好きな高校生諸君!
来たれ阪大・東工大へ!!
諸君のアイデアをスーパーコンピュータ上で実現してみよう!!!
http://www.gsic.titech.ac.jp/supercon/supercon2007/index.html
145login:Penguin:2007/06/18(月) 19:02:45 ID:CAq6Xatz
>>143
無限ってことさ
146login:Penguin:2007/07/31(火) 10:32:30 ID:k8ila0Kz
Cでプログラム組んでて、設定ファイルが必要になったとき

FUGA="Flandre"
HUHUN=1

みたいな形式の設定ファイルを読み込みたいときって
なにか便利なライブラリがあるんでしょうか
それとも毎回構文解析から作ってる?
147login:Penguin:2007/07/31(火) 10:37:54 ID:FuyEnGvx
それのどこに構文解析が必要なのかわからない。
148login:Penguin:2007/07/31(火) 10:55:24 ID:KvXlj0QL
p = strchr(line,'=');

strncpy(var,line,p - line);
strcpy(val,p + 1);
149login:Penguin:2007/07/31(火) 12:22:35 ID:de2QRnQ0
前後に付いてくるであろう空白くらいは
取っぱらった方がいいのではないかと。
150login:Penguin:2007/07/31(火) 12:24:48 ID:KvXlj0QL
>>149
普段はperlでやるもんで。サーセン

# でも、ほんとにベタな設定ファイルをパースするライブラリってあってもいい気がするけれど。

151login:Penguin:2007/07/31(火) 14:24:42 ID:de2QRnQ0
Tclとか。

PerlのIniFilesみたいなのがほしいですな。
152login:Penguin:2007/07/31(火) 18:17:36 ID:jMzQnQMZ
GLIBにGKeyFileってのがあるよ。
153login:Penguin:2007/07/31(火) 18:25:53 ID:/7g2AZAI
>>146>>148
姫様、犬でも使えるstrtok()がふさわしいと思いますわ。
manに何と書いてあっても、気にしなければすむことですもの。
154login:Penguin:2007/07/31(火) 19:51:00 ID:KvXlj0QL
>>153
結局前後のスペースをトリムしたりとかせんとあかんです。
155login:Penguin:2007/07/31(火) 20:57:48 ID:/7g2AZAI
そこは=とスペースとタブと改行を全部まとめて区切り文字に指定すればよろしいのですわ。
156login:Penguin:2007/08/01(水) 01:18:58 ID:SryWC6Ba
>150
freshmeatでparserで検索したら結構あったな。libConfuseとかlibmbaとか良いんじゃないか?
157login:Penguin:2007/08/03(金) 01:06:49 ID:bvfzNSNn
でも、
こういうのって例えば、
FuGa = """"""""ふがfuga" HuHun=2    <- 文字列の形式を守ろうとしない & 1行に2つの設定をしようとする
   リザたんかわいいよハァハァ sa="わわわわ" <- 勝手に関係ない文字列を設定の前に挿入してくる

とかイレギュラーなことしまくってくる人がいるからねー。
そういう人は無視していいのか、それともきちんと
Fuga = "ふがfuga"
Huhun = 2
sa = "わわわわ"

っていうふうに
読むようにしてあげるべきなのか迷うよね。
きちんと読むようにしてあげようとすると結構大変だしね。
158login:Penguin:2007/08/03(金) 01:26:59 ID:pZ3QldO1
マルチポストになるけどこっちでもきくよ

linuxでmath.h(の中にあるはず)のtanhってどうやって使うの?
なんか今/usr/include/math.hの中見たらtanhとか入ってないっぽいんだが…
159login:Penguin:2007/08/03(金) 01:36:28 ID:bYKPBVOp
find /usr/include -name '*.h' -print0 | xargs -0 grep -l tanh
160login:Penguin:2007/08/03(金) 01:39:28 ID:bYKPBVOp
「出てきたファイルを#includeすればいいのか」と勘違いしそうなので補足
しておくが、出てきたファイルはmath.hから間接的に#includeされているの
で、math.hだけでOK。
161login:Penguin:2007/08/03(金) 01:39:53 ID:pZ3QldO1
$ find /usr/include -name '*.h' -print0 | xargs -0 grep -l tanh
/usr/include/bits/cmathcalls.h
/usr/include/bits/mathcalls.h
/usr/include/bits/mathinline.h
/usr/include/tgmath.h
/usr/include/c++/4.1.2/athlon-redhat-linux/bits/c++config.h
/usr/include/c++/4.1.2/bits/valarray_after.h
/usr/include/c++/4.1.2/bits/valarray_before.h
/usr/include/c++/4.1.2/i386-redhat-linux/bits/c++config.h
/usr/include/kde/arts/gsl/gslmath.h
/usr/include/slang/slang.h
/usr/include/mpfr.h
/usr/include/OpenEXR/ImathMath.h

わーい、いっぱーい
ところがどっこい、tanhの関数はどこにもないのだな…
162login:Penguin:2007/08/03(金) 01:40:58 ID:pZ3QldO1
>>160
…むぅ

#include <math.h>
しても
「tanhなんてシラネーヨ」って文句言われる…
163login:Penguin:2007/08/03(金) 01:41:28 ID:pZ3QldO1
ひょっとしてglibc-2.6.90が悪いのだろうか…
164login:Penguin:2007/08/03(金) 01:43:12 ID:sqX5B/B5
>>161
お前の出した検索結果の中にマクロでちゃんと定義されてるんだが。
マルチな上にgrepもろくにできない馬鹿は死ね。
165login:Penguin:2007/08/03(金) 01:46:53 ID:bYKPBVOp
ひょっとして -lm してないとか。
166login:Penguin:2007/08/03(金) 01:50:22 ID:pZ3QldO1
>>164
うむ、よく見たらあったわ。

>>165
…ビンゴでした。

死んできます
167login:Penguin:2007/08/03(金) 08:02:55 ID:xQTim/UJ
>>164
生理か?
168login:Penguin:2007/08/06(月) 00:31:05 ID:S/MosQJv
メンスの奴とは別人だが
マルチに対する扱いなんてそんなんで十分だろ
相手してやってるだけまだいい
170login:Penguin:2007/08/06(月) 11:19:51 ID:oyGAmwrq
句読点ってサービスでしょ
171login:Penguin:2007/08/08(水) 01:02:25 ID:G1QcNwNo
LinuxでELFのリバースエンジニアリングって
objdumpでシコシコasm読み以外方法はなし?
172login:Penguin:2007/08/08(水) 09:34:33 ID:QVlDzd80
>>171
どんな形式をご所望か?w
173login:Penguin:2007/08/08(水) 23:39:35 ID:G1QcNwNo
>>172
ある脱走兵が作ったコードをよく嘘を付く人間が
保守してるのですが、その人が作った.oファイルは
報告書と実際に作った者が違ったりして困ってる
のですよ。

だからできれば最高ソースコードに近いモノ
最低でもコンパイルしたときに使った.o,.soの履歴が
わかるものが欲しいのです。
174login:Penguin:2007/08/10(金) 05:39:01 ID:CiGbCZSU
>>173
コンパイルに使う.o .soって?
リンクのことだとしたら.soは実行時にリンクするから関係なくない?
(.soならlddで)
つーか、ソースで提出させれば?
175login:Penguin:2007/08/16(木) 00:34:39 ID:yq0XfAX7
デバイスを6個監視する場合
select、epoll、poll

どれが一番CPUとSyscallの消費が少ないのでしょうか?
どうにもepollってデバイス20個ぐらいないと重いような気がするのですが
どうなんでしょうか?
176login:Penguin:2007/08/16(木) 01:54:41 ID:QulO8FUO
>>175
selectの中の人はポールさんだから大丈夫
177login:Penguin:2007/08/16(木) 21:48:08 ID:yq0XfAX7
あうー?なんかepollの方がselectよりCPU食うんだけど
なんで?
178login:Penguin:2007/08/16(木) 21:55:22 ID:AwhSe/8M
epollって1000とか2000とかのfdを管理するのに
使うんじゃないのか?
179login:Penguin:2007/08/19(日) 23:08:57 ID:Jwx7kX+u
ちょっと質問なのですが

Kernel2.4でNPT使って時刻同期します。
その結果をなるべく正確にSystemで扱おうとするなら
使うべきシステムコール(API)どれに限定されるのでしょうか?

要件は限りなく100ms、500ms、1000msを正確に扱いと思ってます。

ある処理Aを実行(timestamp添付)---->timestampをみて処理Bを実行
って感じでしたいのですが
180login:Penguin:2007/08/19(日) 23:25:15 ID:vDapTuA8
>>179
gettimeofday見てselectで寝ろ
181login:Penguin:2007/08/19(日) 23:39:13 ID:Jwx7kX+u
>>180
gettimeofdayで見てふて寝すると
他のプロセスに影響受けないのでしょうか?

プロセスが起動した後、プロセスの経過時間は
他のプロセスに影響を受けずにHzに依存した
値が必ず取れるような事を聞いたのですが
ソースがどこにあるのか不明確でいまいち自身が持てません。
182login:Penguin:2007/08/20(月) 00:02:10 ID:vDapTuA8
>>181
どっちに転んだってユーザランドじゃ大した精度出ないんだから
10ms20msは我慢しろ
usleepだってHzずれるんだからビジーるなら10ms以下にしろ
183login:Penguin:2007/08/21(火) 23:42:58 ID:pHBjUifM
あのーちょっと質問したいのですが


pthread_mutexがガチロックしたのか
スルーしたのか回数計測したいときみんなどうしてるのですか?
184login:Penguin:2007/08/23(木) 22:49:48 ID:UiMaHCiE
SMPに影響受けないでrdtsc を
有効に利用するにはどうすればいいのでつか?
185login:Penguin:2007/08/24(金) 21:28:32 ID:5YYyJQdp
SMPを切る・・・
またはどっちのCPUか見る
186login:Penguin:2007/08/24(金) 23:19:03 ID:16/3XJrM
>>185
そんなのヤダもっとましな回答して
187login:Penguin:2007/08/25(土) 01:21:25 ID:RAJat6oH
じゃあCPUを指定してみるしかないな

つーか、今どきrdtscなんてつかわねーよ
188login:Penguin:2007/08/25(土) 01:35:08 ID:QDqJEumv
>>187
じゃあ何使うの?kernel2.4.24なんだけど
何使えばいいの?

gettimeofdayとか馬鹿なこといわんでね
半端無いほど重いから
1秒間に処理56万回走るからそんなもん
呼べないからさ
189login:Penguin:2007/08/25(土) 14:52:48 ID:vg/ekNcu
>>188
rdpmcでも見とけ

このくらい自分で考えるか調べるくらいやってみせろよ
190login:Penguin:2007/08/31(金) 00:22:30 ID:bNhX50eL
-finstrument-functionsで関数のアドレス収集してるのですが

親プロセスがforkしてできた子プロセスが利用する関数アドレスも
収集するにはどう工夫すればいいの?

191login:Penguin:2007/08/31(金) 08:43:41 ID:JY1783PZ
そういうのはgccのオプションだけじゃむり。
oprofileでも使うのがよろし。
192login:Penguin:2007/09/01(土) 17:10:23 ID:a8PEtCzI
FD_SETSIZEを変更したいんだけど
カーネルに手をつけたくない
193login:Penguin:2007/09/01(土) 17:13:55 ID:imGXo2iv
>>192
変更しなきゃならない用途ならepoll使えよ。
194login:Penguin:2007/09/01(土) 18:29:48 ID:a8PEtCzI
まあそういうなよ
プログラム直すの面倒ジャン
ちょっとの変更ですむならそれに越したこたないさ
195login:Penguin:2007/09/03(月) 07:50:58 ID:8cQjC7y5
epollでselectもどき作ればいいじゃん
196login:Penguin:2007/09/07(金) 00:37:18 ID:KH51Gp9U
wait(2)が戻した結果のintの変数をpretty printしてくれる関数ってありましたっけ
197login:Penguin:2007/09/07(金) 01:55:34 ID:WJVdacsE
FD_SETSIZEは、アプリケーションのコンパイル時に設定されてれば
いいみたい。
カーネルのバージョンによってはカーネル変数の調整は必要かもしれんけど。

http://www.drk7.jp/MT/archives/001001.html
http://vce.ce-lab.net/doc/vce/ja/linuxtune.html
198login:Penguin:2007/09/08(土) 02:39:58 ID:TlovepZt
e1000のモジュールのスタックに
直接パケットデータ突っ込むにはどうすればいいの?

そんな野蛮な変態プレイはそもそも不可能?
199login:Penguin:2007/09/08(土) 15:18:35 ID:WTAz4Fzz
e1000のドライバー改造すれば?
メリットないと思うけど。
200login:Penguin:2007/09/09(日) 00:53:48 ID:f5ZEEQ8F
>>199
SysCall 減らしたいんですよね

あと300msec速くしたいんだけどもう
詰めるところなくて
201login:Penguin:2007/09/09(日) 02:30:46 ID:aJCtB81I
めちゃくちゃ減らす必要があるなそれ
300msなんてあったら昇龍拳の無敵時間だって切れちまうぞ
202login:Penguin:2007/09/09(日) 21:25:21 ID:DeeQH1b4
要求設計から間違っている。
203login:Penguin:2007/09/09(日) 22:18:51 ID:bapUmkn7
syscall減らしたくらいじゃ300msecも減らないって。
204login:Penguin:2007/09/09(日) 23:34:44 ID:YHSemaf1
300msって今が何msで、何を300ms短くしたいんだ?
205login:Penguin:2007/09/10(月) 00:03:29 ID:BXnhWyVJ
>>204
俺もそれずっと疑問だった。
206login:Penguin:2007/09/12(水) 00:28:38 ID:oZCXyX9R
FIFOというか、なんかプロセス間でデータを渡せるキューを作りたいんだけど
キューになんかデータが残った状態でPCの電源切って再起動して
またプログラム動かしたら続きから読み出せるようにしたりしたいので
共有メモリやらメッセージキューやらではない方法で何かいい手を探し中。
なんか良いアイデア無い?

今はSQLiteとか使ってDBをキュー代わりにしてるんだけどなんか
大げさな気がするし、こんな使い方を世間が許すのかちょっと疑問。
207login:Penguin:2007/09/12(水) 00:58:56 ID:1T4//6px
queue daemonでggr
LPRngとか?MTA系全般?でもSQLiteより大げさか。
ホントに出し入れだけでいいならmaildirフォルダで処理してもいいかな。
O_SYNC+mmapでファイルにマップしたオンメモリキューの操作でもいけるかな。

208login:Penguin:2007/09/12(水) 01:09:11 ID:oZCXyX9R
queue daemonでググったら>>207がひっかかった
なんだグーグルのこの異常な速さ

それはさておき、大げさなのが嫌なのは
少しだけ速さを要求されるからなのです
といってもまー大した問題じゃないか
209login:Penguin:2007/09/12(水) 01:25:05 ID:1T4//6px
>>208
書き忘れてたけど、BDBのqueueでいいのかも
210login:Penguin:2007/09/12(水) 13:03:41 ID:u3WShS8c
MQ
211206:2007/09/12(水) 13:15:50 ID:u4sMCnUI
>>210
これ、本物のファイルで出来たっけ?
212login:Penguin:2007/09/12(水) 23:31:37 ID:JMXvhgKg
10GbpsのNICを2枚装備している
マシンがあるのですが

eth0から毎秒500MB/secでデータ受けて
そのデータをeth1に転送してます。
recvとsendで処理してるのですが
すぐ8CPUとも80%前後まで使用してしまいます。

もっと言い方法ないですかね?
213login:Penguin:2007/09/12(水) 23:57:54 ID:+2hRysfN
>>212
splice?
214login:Penguin:2007/09/13(木) 11:12:31 ID:V08yA5s5
>>212
/proc/sys/net/ipv4/tcp_{rw}mem
を調整
215login:Penguin:2007/09/13(木) 14:36:42 ID:CQWMmnll
コマンドラインのkillallと同じようなものをCで実装したいとき
なんかかっこういい方法ある?
216login:Penguin:2007/09/13(木) 14:41:36 ID:V08yA5s5
killallのソース見たら?
217login:Penguin:2007/09/13(木) 14:44:59 ID:+lSCice8
term シグナルを送りまくれ。
ソースをそのままパクレ。
218login:Penguin:2007/09/13(木) 22:26:06 ID:RMrzW8HD
>>210
MQって何?(というかどれ?Javaなのしかかからん・・・)
219login:Penguin:2007/09/13(木) 23:22:59 ID:YhbwIeB9
>>214
その辺はいじってるけどそんなんじゃ焼け石に水だったw

結局さどうすりゃいいのかね
eth0からeth1にパケットデータ中継したいだけだからさ
zero copyできるような方法ないのかな?

sendfileは入力デバイスがファイルmmapじゃないとダメだったし
spliceも入力もだめだった。

あと方法ないかな?
220login:Penguin:2007/09/14(金) 10:19:36 ID:LGchwi2d
>>219
spliceはsendfileを置き換えて任意のディスクプリタがOKになって
いるはずなんだか。カーネルのバージョンはいくつ?
221login:Penguin:2007/09/14(金) 10:21:51 ID:LGchwi2d
>219
あとはcold.sysで聞いてみるとか。
222login:Penguin:2007/09/15(土) 01:08:50 ID:Gol0FyEz
>>220
Linux Ubuntu 2.6.20-16-generic #2 SMP Thu Jun 7
20:19:32 UTC 2007 i686 GNU/Linux
ですけど対応しているから問題ないですよね?

eth0 = socket()
eth1 = socket();

後はspliceでいいのですよね?
splice(eth0, NULL, eth1, NULL, size ,SPLICE_F_MORE | SPLICE_F_MOVE

>>221
えーとそれどこでしたっけ?


223login:Penguin:2007/09/15(土) 01:53:37 ID:YiwEKkpX
>>220
man 2 splice だと

 splice() moves data between two file descriptors...
 ...where one of the descriptors must refer to a pipe

とかあって、この "pipe" って何? pipe(2) な pipe ?と微妙に
どんな意味の制約なのか読めてないんだけど、知ってたら教えてくらはい。

あ。漏れは元質問者とは別の中の人です。
224login:Penguin:2007/09/15(土) 11:40:17 ID:X+EQNSuz
>>222,223
間にpipeはさむ事で組み合わせの爆発を防ぐの。
splice linux 使い方、でググれよ。
225login:Penguin:2007/09/15(土) 13:00:59 ID:WW33Uygn
>>221
cold.sysって何ですか?
226login:Penguin:2007/09/15(土) 13:34:32 ID:v9/27PR8
comp.os.linux.development.sys ?
227login:Penguin:2007/09/15(土) 14:53:45 ID:Gol0FyEz
cold.sysで聞いたら
japは2chで聞けよって笑われたんだけど

どうしたらいいのw?
228login:Penguin:2007/09/15(土) 16:17:21 ID:YiwEKkpX
>>227
fjにでも逝け
229login:Penguin:2007/09/15(土) 20:17:38 ID:WW33Uygn
>>227
ログ見せて
230login:Penguin:2007/09/15(土) 20:33:58 ID:26HMq0m6
>>227
c.o.lは2chと同じだからな。
だいたいLinux自体煽りから生まれた代物だし。
Linuxでまともに質問できる場所なんて未来永劫現れないよ。
金払っても無理だ。
レッドハットサポートつかえばよく分かるぞ。
231login:Penguin:2007/09/15(土) 22:11:48 ID:ZssMtkX9
レッドハットじゃあ話にならんだろ。
IBMなんかのほうがまだマシ。あれもお寒いものだが。

バカ高い金を払ってもいいなら、VAはそれなりの回答をくれた。
といってもずいぶん前の話だから、最近はどうだか知らないけど。
2、3年前から安いサービスをやってるけど、あの値段じゃあたいした回答は貰えないだろうなと思った。
232login:Penguin:2007/09/15(土) 23:20:27 ID:26HMq0m6
それを考えるとやはりマイクロソフトが相当お買い得なんだよな。
開発元直結っていう強みなんだろな。
233login:Penguin:2007/09/15(土) 23:29:55 ID:2Di70A/1
確かにredhatに電話した後msに電話するとあまりの対応の違いに
MS信者になりかけてしまうよな
ならないけど
234login:Penguin:2007/09/16(日) 00:13:28 ID:C2jUU4Gn
まじな話ぐぐるの人間と酒飲みながら
話たほうが勉強なるってところで
RもVも終わってる。
235login:Penguin:2007/09/16(日) 00:17:06 ID:0jBsOxD6
MSいいか?ちょっとでも込み入った質問は全部USに転送されて時間かかるし、
翻訳ミスだかUSのエンジニアもたいしたことないんだか知らんが、まだ
回答に満足できたケースがないんだが。スレ違い+チラシの裏ですまん。

>>231
VAって何をきくのにいくらくらいかかるの?
その、まぁまぁまともな高い方とやらで。
236login:Penguin:2007/09/16(日) 00:19:38 ID:xdnEBkyg
> 何をきくのにいくらくらいかかるの?
馬鹿発見。
237login:Penguin:2007/09/16(日) 00:26:49 ID:0jBsOxD6
>236
理由は?
238login:Penguin:2007/09/16(日) 00:47:56 ID:C2jUU4Gn
VA200万ぐらいからなかったっけ?
239login:Penguin:2007/09/16(日) 06:21:36 ID:jr/7tlT0
>>237
理由は?って・・・
理由がわからないのお前だけだと思うぞw
240login:Penguin:2007/09/16(日) 12:39:28 ID:0jBsOxD6
だめだこいつ。

Linuxの質問を業者にするという感覚が不思議なんだよね。俺は必要なら当然自分で調べる。
自分で調べる能力の欠如した低能は最大でいくら位お布施してくれるのかなと思ってさ。
241login:Penguin:2007/09/16(日) 12:51:44 ID:UUEKlOam
>>240
だからこそじゃないか。
漁場は大事にしなきゃだめだぜ
242login:Penguin:2007/09/16(日) 12:55:35 ID:jr/7tlT0
>>240
お前は食べるものは全部自分で作るのか
魚は稚魚から育て、コメは稲から育て
その感覚がまずわからんわ
243login:Penguin:2007/09/16(日) 13:01:30 ID:0jBsOxD6
> お前は食べるものは全部自分で作るのか
> 魚は稚魚から育て、コメは稲から育て

そうだよ。オープンソース関連についてはね。
お仕事頑張ってね、SEさん☆

244login:Penguin:2007/09/16(日) 14:04:18 ID:huGDb2pP
金払ってサポート受けてると、サポート外になるからって、回避策とかみつけてもやらせてくれないし、
やる気がなくなるよ。

と、書いてみたが、プログラミングのサポートなんか受けたことないんだった。
245login:Penguin:2007/09/16(日) 14:12:41 ID:36uWBAtJ
>>243
それではまず半導体プロセスについて語ってもらおうか。
原石はどこから切り出しているんだ?
246login:Penguin:2007/09/16(日) 14:19:01 ID:uzxa+jYq
わざわざ言うことでもないだろうが内心は>>240、外面は>>241でいいんじゃないか。
>>245みたいな馬鹿はおいといて
247login:Penguin:2007/09/16(日) 14:54:34 ID:M2oozAy/
ヲタの趣味なら納期もコストも関係ないけどなぁ。
オープンソースで一番困るのは、不可解な動作があったとして
それが仕様に該当するのかそれともバグと考えていいのか
誰も判断できないことなんだよな。
248login:Penguin:2007/09/16(日) 14:59:52 ID:C2jUU4Gn
>>247
それはいくらなんでもないだろ。
アセンブラよまねーとならねぇなんてことはない。
結局責任とりたくないだけだろうな

APIもソースも見れてそれはないよね?
249login:Penguin:2007/09/16(日) 15:19:02 ID:M2oozAy/
>>248
それ何のギャグ?
250login:Penguin:2007/09/16(日) 15:22:25 ID:M2oozAy/
あぁ、これが釣りってやつか。
わかんなかったわ。
251login:Penguin:2007/09/16(日) 17:28:06 ID:huGDb2pP
オープンソースなら、ソースにある通りだろ。
まあ、コンパイラとかのバグもあるけど。
252login:Penguin:2007/09/16(日) 20:12:51 ID:0c6+c6lv
これがLinuxクオリティー。
そしてこんなやつらがトップクラスのLinuxエンジニアらしい。
253login:Penguin:2007/09/16(日) 20:21:50 ID:0c6+c6lv
> オープンソースなら、ソースにある通りだろ。
> まあ、コンパイラとかのバグもあるけど。
何度見てもすげーな。
254login:Penguin:2007/09/16(日) 23:20:30 ID:huGDb2pP
だって、ドキュメントが当てにならないプロジェクト多いじゃん。
あと、残念ながら、全然Linuxエンジニアじゃないから。
Linuxは使うだけ。
255login:Penguin:2007/09/16(日) 23:51:20 ID:qjxl6X83
>>254
まぁエンジニアじゃないなら仕方ないか
もしPGで「ソースが仕様書」なんて言ってたら
若狭湾に浮かべてたとこだ
256login:Penguin:2007/09/16(日) 23:59:57 ID:ga5wXfPF
>>255
なに言ってるの、基本じゃんw
257login:Penguin:2007/09/17(月) 00:18:13 ID:Gghi5nzi
考えるな、感じるんだ!!
258login:Penguin:2007/09/17(月) 00:35:37 ID:KF6+83sP
>>255
PGなんて略語を使ってる時点でお里が知れるぞ。
まぁあと、きみの論法だとgoogleの連中はみんな若狭湾だな。
259login:Penguin:2007/09/17(月) 01:05:07 ID:7mF7zMDJ
「仕様書」が存在するかどうかに関わらず、ソースは実装であって仕様ではないだろ。
ソースが仕様なら、バグなんてものはあり得ないよな。仕様通りで、正しいものなんだから。
260login:Penguin:2007/09/17(月) 01:25:23 ID:ifKoWn9t
いや、オープンソースってそういうものらしいぞ。
あれだけ偉そうな書き込みかましてるくらいだから、相当名のある
Linuxエンジニアなんだろ。
そいつらがいうんだから間違いないだろw

普通はサポートの返答の一番最初に仕様かバグかはっきりさせてくれるもんだよな。
はっきりしない場合は、丁寧なお詫びの言葉を述べてくるだろ。
俺はそういうものだと思ってたし、それを期待してるんだよ。
261login:Penguin:2007/09/17(月) 07:55:20 ID:s0twSYHE
ps -eLf とすると、スレッドのID (LWP) を画面表示できますが、これを取得するシステムコールって
あるんでしょうか? psは/procを読んでるだけ?

pthread_self()で取れるulong値とは別物です。
262login:Penguin:2007/09/17(月) 09:24:18 ID:G7dAmd5E
>>261
どうしてpsのソースを見るという発想がないのか。
センスないよ。プログラマやめたら?
263login:Penguin:2007/09/17(月) 09:33:47 ID:pdW5VZYg
トラぶったときやること。
1. ドキュメントみる
2. 本家が出してる情報を探す。Webページがあるなら、news/update, errata, FAQとか。
3. 本家のBTS, ML/Forumがあれば、そこを見る
4. Web検索
-------
5. strace/ltrace等で追ってみる
6. ソースみる
7. デバッガ使って深追い(発生している現象の解析、一般化)

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

>>260
サポートが受けられる範囲で、大口ならそういうサポートが受けられるのかな?
構築とかまで全部任せてるとか。
264login:Penguin:2007/09/17(月) 09:45:38 ID: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コマンドが非効率
なことやってる可能性もあるから、最新のシステムコールを知っている人間からの回答があっ
たら嬉しいな、とか。そのへん。
265login:Penguin:2007/09/17(月) 09:48:15 ID:s0twSYHE
眠いようだ。typo訂正。

正: ちょうどよい書き込みがあった(>>263)ばかりだから書くが
266login:Penguin:2007/09/17(月) 13:41:16 ID:2vZ6I9C9
>>263
Linuxサポートは、ぐぐったらこんなページがありましたけど
なんて普通に述べられたりして結構ビビるよね。
267login:Penguin:2007/09/17(月) 16:13:28 ID:s0twSYHE
>>266
それが自分のページだったりしたら笑えるな。調べ物をしていると、日本語での情報が自分のblogしか
ないってことがよくあるので。
268login:Penguin:2007/09/17(月) 16:25:52 ID:KQNRR09N
>>267
あるあるw
269login:Penguin:2007/09/17(月) 18:23:28 ID:IoEVGx7E
g++-4.1.2, libstdc++-4.1.2で、std::fostreamのインスタンスから、対応するfile descriptorを得るにはどうしたらよいでしょうか?
270login:Penguin:2007/09/17(月) 18:52:45 ID:warckn1B
>>267
それで金とれるんだから、オープンソースっておいしいよな。
271login:Penguin:2007/09/18(火) 00:07:49 ID:FePolVgo
ドライバに依存しないで

sk_buffにアクセスするにはどうすればいいの?
272login:Penguin:2007/09/18(火) 10:09:49 ID:CbMPhksH
/proc/kcore
273login:Penguin:2007/09/18(火) 13:22:37 ID:ApHFmsOy
root権限で動いてるんだけど、hogeというユーザからのsignalは受け付けたい

というときには何をすればいいんだっけ
274login:Penguin:2007/09/19(水) 00:40:52 ID:2QfTM7JO
raw socketから上がってくるデータに
タイムスタンプ付けたい場合ってLinuxの場合
どうするの

getなんちゃら禁止だとどうゆうことができそうなの?
275login:Penguin:2007/09/19(水) 09:41:24 ID:Xd50Xp8J
>>273
sudoでええやんか。
276login:Penguin:2007/09/19(水) 19:43:52 ID:zj6+rBh8
>>275
それじゃhogeというユーザじゃなくなっちゃうじゃん
277login:Penguin:2007/09/19(水) 21:21:59 ID:0ExJA0em
>>273
SELinux 使え
それ以外は無理
278login:Penguin:2007/09/19(水) 22:22:40 ID:d9OxuuhF
>>273 >>277
capabilities(7)のmanみれ
279login:Penguin:2007/09/19(水) 23:04:15 ID:zj6+rBh8
>>278
すばらしい。。お礼にあとでおいしそうなラーメン画像うpするわ。
280login:Penguin:2007/09/19(水) 23:17:27 ID:d9OxuuhF
>279
まぁ死ぬほど使いにくい仕組みだけどな。POSIXのケイパビリティは。
SELinux+SEEditも試しとけ。
281login:Penguin:2007/09/22(土) 04:25:23 ID:0+hWr/d7
futex使い方おせーて
282login:Penguin:2007/09/22(土) 04:51:08 ID:rfMprt9C
drepperタンのドキュソメントでも読んどけ。
283login:Penguin:2007/09/22(土) 05:30:16 ID:0+hWr/d7
どこにあるの?
284login:Penguin:2007/09/22(土) 06:51:15 ID:rfMprt9C
285login:Penguin:2007/09/22(土) 15:34:57 ID:0+hWr/d7
おいkernel2.4でfutexつかえねーぞ

286login:Penguin:2007/09/22(土) 15:43:22 ID:t3vHBCq6
>>285
五月蝿いよ、スレ汚し
287login:Penguin:2007/09/22(土) 15:44:56 ID:rfMprt9C
>>279
お礼のラーメン画像まだ?
288login:Penguin:2007/09/22(土) 16:53:44 ID:F0YS4UKz
A,B,C というプログラムがいて、それぞれが好きなタイミングで
あるキューにデータを積む
それをDというプログラムが好きなタイミングで取り出して処理する

というプログラムを書きたいんだけど、この場合
キューにどんな仕掛けを使うのが一般的かな
289login:Penguin:2007/09/22(土) 16:57:10 ID:ZMcdaoSF
乱数?
290288:2007/09/22(土) 17:01:08 ID:F0YS4UKz
好きなタイミング ってのは任意のタイミングってことで。
メールスロット?みたいな機能を作ろうと思ってます。
291login:Penguin:2007/09/22(土) 17:05:49 ID:rfMprt9C
292login:Penguin:2007/09/22(土) 17:05:54 ID:ZMcdaoSF
mmap?
293288:2007/09/22(土) 17:35:59 ID:F0YS4UKz
>>291
ありがとう!
メッセージキューって、多対1は出来ないと思い込んでたよ。

ちょっとこれで1時間くらい組んでみる。
294login:Penguin:2007/09/22(土) 17:38:25 ID:0+hWr/d7
>>293
速度おせーけどいいのか?
295288:2007/09/22(土) 17:46:05 ID:F0YS4UKz
>>294
やりとりが200ms以上遅延しなければ問題ないです。

あんまりにも遅ければキューのルーチンだけ
別の方法に切り替えるまでです。
296login:Penguin:2007/09/22(土) 18:00:42 ID:rfMprt9C
>294
遅いって、何とくらべて、どんな処理が、どの程度遅い?
@Linux 2.6 w/ futex
297login:Penguin:2007/09/22(土) 19:23:22 ID:SmO2oYOC
                  マチクタビレタ〜
      ☆ チンチン〃   Λ_Λ   / ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < おいしそうなラーメン画像マダー?
マチクタビレタ〜 \_/⊂ ⊂_ )   \____
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |   マチクタビレタ〜
298login:Penguin:2007/09/22(土) 19:57:14 ID:VDh1QMev
>>279じゃないけど、おいしそうなラーメン画像張っておきますね。
ttp://showa-diary.com/blog/pic/0606/20060629_29yen2.jpg
299login:Penguin:2007/09/22(土) 20:01:27 ID:iMrKxTpi
かなしい気分になりました。
300login:Penguin:2007/09/23(日) 01:25:08 ID:tBRgGEFT
最近知ったシステムコールと関数:
pread(2), posix_fadvise(3), dirfd(3)

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

以上、俺のチラシの裏として活用させてもらいました。
301login:Penguin:2007/09/23(日) 04:05:45 ID:R2J73xCx
302login:Penguin:2007/09/23(日) 14:29:30 ID:2H3sPwph
メッセージキュー(mqueue)を使うプログラムを書いて、コンパイルして
リンクしたらmq_openとかが無いっつわれた。

これって、-lなんとかのライブラリを指定しないと駄目なの?
303login:Penguin:2007/09/23(日) 14:43:48 ID: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 したら?

304login:Penguin:2007/09/23(日) 14:43:59 ID:mx2b6ImT
マニュアル読め
305login:Penguin:2007/09/23(日) 14:54:32 ID:tBRgGEFT
>>304
mq_open(3)には記載がない悪寒
306login:Penguin:2007/09/23(日) 14:56:54 ID:tBRgGEFT
mq_overview(7)に書いてあるようだねぇ。知るかよw
307login:Penguin:2007/09/23(日) 15:03:44 ID:CJrcPuMq
>>306
知らない方が異常
308login:Penguin:2007/09/23(日) 15:06:17 ID:tBRgGEFT
すごーい。
309login:Penguin:2007/09/23(日) 15:07:16 ID:8ALjKCMy
gentoo のマニュアルには mq_* 全部に書いてあった
310login:Penguin:2007/09/23(日) 15:15:42 ID:tBRgGEFT
mq_のマニュアルってglibcの一部だよね?
gentooでは自前で製作しているということなのかな
311login:Penguin:2007/09/23(日) 16:49:21 ID:1fQtWZJX
Gentooは普通にLinux Programmer's Manualだけど、
2006-02-25だと書いてあるみたい。
312302:2007/09/23(日) 17:30:26 ID:2H3sPwph
>>303
ありがとう!
お礼にあとでおいしそうなカツ丼の画像をうpするよ

>>306
それ見てたんだけど見逃してたよ。俺の目は節穴だった。ごめん。
313login:Penguin:2007/09/23(日) 17:33:10 ID:tBRgGEFT
ラーメンは来なかったら、今度は期待してるぜ。
314login:Penguin:2007/09/24(月) 00:52:36 ID:kgZ5pKnk
315login:Penguin:2007/09/24(月) 01:08:05 ID:ytCajFbL
グロ画像にしか見えません。そもそもLinuxプログラミングと関係あるのか
316login:Penguin:2007/09/24(月) 03:02:18 ID:vibgjhrs
>>315
ky
317login:Penguin:2007/09/24(月) 04:24:37 ID:d3+l1tl9
>>315
キャインキャイン!
318login:Penguin:2007/09/24(月) 10:39:15 ID:hY1Zpi5v
>>316
なにがkyだ。それは手前の方だろ
319login:Penguin:2007/09/24(月) 11:40:48 ID:oWdnqGOu
kyってなに?
最近略語が増えてついていくのが大変
320login:Penguin:2007/09/24(月) 11:53:42 ID:wKP5qWj5
Kuuki Yome
321login:Penguin:2007/09/24(月) 11:57:56 ID:K+J+mAAI
空気嫁
322login:Penguin:2007/09/24(月) 12:00:15 ID:oWdnqGOu
>>320-321
ありがとう。これで空気読めるようになったよ。
323login:Penguin:2007/09/24(月) 14:40:26 ID:d3+l1tl9
読めてません。
324login:Penguin:2007/09/24(月) 16:44:27 ID:/TENigCK
ある特定のライブラリ(libXXX.a)の中でメモリリークが発生していることがわかっているので、
そのライブラリだけBoehm GCのmallocに差し替えたいんですが、そういうことってできまし
たっけ?
325login:Penguin:2007/09/24(月) 16:49:02 ID:/TENigCK
>>296もよろしく。>>294
326login:Penguin:2007/09/25(火) 00:42:58 ID:tOnrroA3
>>324
malloc フックでぐぐれ
327login:Penguin:2007/09/25(火) 01:14:39 ID:DweR4QXy
>>324

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

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

そうゆう解決方法は根本的な対処にならないから
やめれ。リークしてるものは修正しろ
328login:Penguin:2007/09/25(火) 23:16:01 ID:DweR4QXy
>>324
同級生に1人はいた、借りたものを返さないやつだな。

借金沢山ありそうw
329login:Penguin:2007/09/26(水) 00:06:34 ID:YpckYtbt
>>324
mallocってシステムコールじゃないっしょ。リコンパイルなしでは無理っしょ
330login:Penguin:2007/09/26(水) 01:26:15 ID:yQRyKR94
LD_PRLOAD子欄の?
331login:Penguin:2007/09/26(水) 21:16:50 ID:v+gFFOHB
>>327
LinuxはWindowsと違って多少リークしてても普通に動くよ。
実際、安定しているといわれてるアプリでもリークしてるものが多い。
例えばFirefoxとかGimpとかね。
コマンドの中には最初から解放しない戦略をとってるものもあるし、
多少のリークは修正する必要がない。
実際、有名なアプリでも修正しない戦略をとってるものがあるしね。
ほら吹きOSじゃないんだから、メモリーなんていちいち気にする必要ないんだよ。
332login:Penguin:2007/09/26(水) 21:30:49 ID:M/+a2TgQ
また変な釣りが湧いて出たか
333login:Penguin:2007/09/26(水) 22:28:15 ID:FU3404FR
バイオワーム未満のまずい餌を
みてひさびさに閉口したw
334login:Penguin:2007/09/26(水) 22:32:32 ID:P0NX8bPM
  ,-´ ~¨"''''‐- .,
  |` ー- ...,,,___.)
  |\丶}} !{   |i i|
 |`ィ,,ヽ {j   }、l|
 ヘミノ /^\ヽ_/^!:|i
 l_ノ V u _ノ   、リ
 人 >  ( ●)(●)  何を言っているのか わからねーと思うが
/ハノゝ u  (__人__)  おれも何を言っているのかわからなかった…
 V"     ` ⌒´ノ
.  |         }   常識的に考えて・・・
.  ヽ      u   }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \
335login:Penguin:2007/09/26(水) 23:22:54 ID:v+gFFOHB
>>333
バイオワームがまずいんじゃなくて
お前の料理がまずいんだ
素材のせいにスンナボケ
336login:Penguin:2007/09/27(木) 01:01:03 ID:gsAwBD+f
>>330
へー Linux の静的ライブラリは環境変数 LD_PRLOAD で置き換えできるのか〜
教えてくれてありがとう。
337login:Penguin:2007/09/27(木) 02:34:38 ID:VzBoMjAX
>>336
L D _ P R L O A D 子 欄 の ?
Hint:.a
Hint:PRLOAD
338login:Penguin:2007/09/27(木) 08:49:58 ID:hzAH420J
>>336
static linkされたものを置換できるとは誰も言ってない。
勝手に拡大解釈するな。Linkder&Loadersとか、適当な本で勉強汁。

あと、LD_PRELOADな。Eが抜けてる。
339login:Penguin:2007/09/27(木) 08:50:59 ID:hzAH420J
Linkder&Loaders
じゃなく
Linkers&Loaders

ごめん。
340login:Penguin:2007/09/27(木) 11:29:56 ID:x6U3NKaN
あ る 特 定 の ラ イ ブ ラ リ ( l i b X X X . a ) の 中 で
341login:Penguin:2007/09/27(木) 13:50:54 ID:iv68VIR1
適 当 な 本 で 勉 強 汁 。
342login:Penguin:2007/09/28(金) 00:09:07 ID:MDX80Mu5
mallocってシステムコールかいな
343login:Penguin:2007/09/28(金) 02:07:37 ID:wLKx4a83
>>324
そのライブラリだけってのが気になるがLD_PRELOADで差し替えできるようだね。
前提や条件を受け入れられるかは知らないが。
ttp://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html

関係ないけどleak.htmlの最後にさらっと粋なことが書いてあるwww
344login:Penguin:2007/09/29(土) 03:19:25 ID:Ao0+HlwR
openipmiの日本語プログラミング
マないかな?
345login:Penguin:2007/09/29(土) 23:45:42 ID: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");
}
-------------------------------------------------------------------------
346login:Penguin:2007/09/30(日) 00:11:06 ID:JTctf1Ko
>>345
いくらくれる?
347login:Penguin:2007/09/30(日) 09:27:43 ID:mXOCWJ6v
>>346
アホか。
348login:Penguin:2007/09/30(日) 18:32:05 ID:cTP/1hI9
つ I ホラ、ダイジニツカウンダゾ
349login:Penguin:2007/10/01(月) 00:56:00 ID:kZSHZlgP
(´,∀`)ゴチソウサマ
>>345
SOCK_DGRAMじゃなくてSOCK_STREAMだとどうなんだろう?
350login:Penguin:2007/10/01(月) 14:29:09 ID:WPD1ZzVS
>>349
それかもしれませんね。
試す環境が無くなってしまったので出来ませんが・・・
connectされたソケットじゃないと取れないとか?
どうやって取ってるかわからないから何ともいえないけど・・・。
ありがごうございました。
良回答 10pt
351login:Penguin:2007/10/02(火) 17:43:12 ID:pFIeRD5Z
>>345
この質問はnetfilter-develにたまーに来る(1年に1回位)。
で、回答は SO_ORIGINAL_DST がサポートされているのはIPv4のTCPのみ。

どーしてもっていうことなら、もはやcacheにしか残ってないこのパッチを参考にするこった。
http://web.archive.org/web/20040816092143/http://lists.netfilter.org/pipermail/netfilter-devel/2001-May/001195.html

このパッチ相当の機能は、2007年現在まだマージされてないはず。
352login:Penguin:2007/10/02(火) 23:15:16 ID:TateldD6
あのーオドオドオド

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

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

353login:Penguin:2007/10/02(火) 23:17:15 ID:OCvX4Zeq
>>352
kernelのバージョンとarchは?
354login:Penguin:2007/10/02(火) 23:37:43 ID:TateldD6
kernlは2.4.24と2.6.20です

debianで動けばOKです
355login:Penguin:2007/10/02(火) 23:40:33 ID:OCvX4Zeq
>>354
ずれるというのは時間が戻るということ?
最新のカーネルを使ってみれば?

古いので動かしたかったら、debianのBTSに突っ込んでみたら?
356login:Penguin:2007/10/02(火) 23:46:34 ID:TateldD6
>>355
そうですねー。
こうゆうのって自分で実装するのは難しいのでしょうかね?
357login:Penguin:2007/10/02(火) 23:57:38 ID:OCvX4Zeq
>>356
CPU1個にすればいいじゃね?
358login:Penguin:2007/10/03(水) 08:55:17 ID:mGA09CPb
>>352
そういう現象は聞いたことがない。貴方のコードに問題があるかもしれない。
どういうプログラムなのか、コードと実行結果を貼るなりしないと何とも言えないな。
359login:Penguin:2007/10/04(木) 00:38:47 ID:BHffRC4x
同一の名前で、ちょっとバージョンの違う
/usr/lib/xxx.soと/opt/dev/xxx.so

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

libcとか今組込み用に作ってるのですがどうにも
/usr/libのほうよみにいっているようで....
360login:Penguin:2007/10/04(木) 00:40:34 ID:0WRnyS6M
>>359
LD_LIBRARTY_PATHだっけか。
361login:Penguin:2007/10/04(木) 00:45:16 ID:BHffRC4x
>>360
それでいけますよね?

前任者がDQNみたいで

#define printf xxx_printf

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

ビルドも独自の.sファイル用意して
アドレスに直にバインドするとか
意味不明なことをしています
362login:Penguin:2007/10/04(木) 00:57:37 ID:hH9ei5GL
>>359
リンク時にバイナリにライブラリ検索パスを埋め込むために、
ld 実行時にLD_RUN_PATH を設定するか、-rpath オプションを
付けてリンクする。

LD_LIBRARY_PATHは、バイナリビルド環境と実行環境の差を
埋める時のみに使うべきかと思う。
363login:Penguin:2007/10/04(木) 01:15:11 ID:BHffRC4x
>>362
わたしもそう思うのですが

でもなんで

#define printf xxx_printf
なんてしたんだろう。
コード汚くなって意味ないと思うんだけどな...
こんなことする馬鹿他に見たことあるって
人いますか?明日そいつを血祭りにあげようと
思ってます。
364login:Penguin:2007/10/04(木) 02:03:36 ID:PKHRa3Ub
おまえさんよりは前任者の方が詳しい鴨よ。
もちっとkwsk書いてみたら?
365login:Penguin:2007/10/04(木) 03:55:40 ID:Lja62WFk
>>351
おそくなりましたがありがとうorz
366login:Penguin:2007/10/04(木) 03:57:32 ID:2YWUx8wh
まず理由を聞くべきだろ?
367login:Penguin:2007/10/04(木) 10:22:53 ID:SX6Gg+w/
組み込み用ならそれなりの理由があるのかもしれないような。
368login:Penguin:2007/10/04(木) 21:48:51 ID:BHffRC4x
理由を聞いたが-rpathを知らないから
そうやったって自供しました。

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

半日ぐらいノビてたなw

369login:Penguin:2007/10/04(木) 22:21:52 ID:NmqYv4MX
暴力はいけません
370login:Penguin:2007/10/04(木) 23:57:03 ID:kujiByn/
組み込みでLinuxなのにlibc自作って何か新鮮
371login:Penguin:2007/10/05(金) 00:54:03 ID:RuBV1DrC
Upstreamに流すつもりのFIXコードを書いてテストしておkぽかったんだが、
なんかしらないがそのままゲームにはまってしまって疲れて寝た。
次の日、他の人がパッチをコミットしていた時の悔しさ。
372login:Penguin:2007/10/06(土) 02:25:21 ID:jz11x7Hd
汎用DMAドライバってどっかに
ないかなぁ

CPU使わないでデータコピーしたい
373login:Penguin:2007/10/09(火) 23:39:51 ID:D7LghPSZ
カーネル2.4にvsyscallのgettimeofdayを
移植したいんだけど

いい情報ないかな?最悪ドライバモジュールで
実装でもいい
374login:Penguin:2007/10/10(水) 23:40:45 ID:MaiKO5Xh
Linuxで作成したファイルをWindowsに移すにはどうしたらいいんですか?
375login:Penguin:2007/10/10(水) 23:58:52 ID:wcdf1KNh
ftp
376login:Penguin:2007/10/11(木) 00:10:18 ID:IhTCaNfQ
od -x filename | lessしたあと

windows側で1バイトずつ
手打ちすればいいよ
377login:Penguin:2007/10/11(木) 00:14:30 ID:0rD2It5e
>>376
メモ帳でやってみました。
なんかファイルサイズが16倍になったんですが、ホントにこれ使えるんでしょうか・・・。
378login:Penguin:2007/10/11(木) 01:03:35 ID:XbMVm2Iq
>>376
おにー
379login:Penguin:2007/10/11(木) 01:29:29 ID:nRNlKb1D
>>377
なんで16倍?
380login:Penguin:2007/10/11(木) 03:52:22 ID:yX6O/zNE
tcpdumpみたいなものをカーネルモジュールで書いているんですが、
tcpやudpのデータ部分を取得するにはどうやったらいいのでしょうか。

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

どなたかわかる方よろしくお願いいたします。
381login:Penguin:2007/10/11(木) 16:06:54 ID:q6R8bHpk
>>377 Bz使えよ
382login:Penguin:2007/10/13(土) 21:50:16 ID:Zr5sYmS5
383login:Penguin:2007/10/15(月) 21:09:43 ID:LCPtRnTv
カーネルソースはあるのにヘッダーsがないばやいで
ソースからヘッダーってできないですか
っていうかソースがあればヘッダーはいらないと思ってた!
なんでなん?
384login:Penguin:2007/10/15(月) 23:41:51 ID:XG6Zr9VJ
>>383
インクルードするところを
/usr/includeとかになってるところを
/usr/src/linux/includeとかにするところでいいんじゃね?
-Iとかで指定するところだと思うよ
385login:Penguin:2007/11/01(木) 21:34:43 ID:OFz7RgOT
ipmiのライブラリってどれもつかえねーな

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

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

あそこのエンジニアはSCOよりひどい
387login:Penguin:2007/11/09(金) 14:05:06 ID:Aq/ZR00i
メモリの使い方について質問。

システムメモリ領域は負のアドレスというのを読んだのですが、
連続した次の領域を読む場合、正負どちらの方向に進めばいいのでしょうか?
例えば-521568100の次の領域は、-521568099?それとも-521568101?
388login:Penguin:2007/11/09(金) 14:45:29 ID:muGJS6N4

-3 -2 -1 0 1 2 3

- +
389387:2007/11/09(金) 15:12:03 ID:Aq/ZR00i
>>388
なるほど〜。
ありがとうございました。
390login:Penguin:2007/11/10(土) 01:16:39 ID:tSMAg/81
LD_PRELOADで関数フックしたあと、もとの関数呼ぶ方法ってありますか?

void hoge()
{
hoge(); // <- もとのhoge関数を呼び出したい
}
391login:Penguin:2007/11/10(土) 02:58:50 ID:RN+zA3HO
>>390
dlopen, dlsym
392login:Penguin:2007/11/11(日) 12:34:41 ID:jhqVcqNv
mono develop使ってるヤシいる?
393login:Penguin:2007/11/11(日) 19:49:41 ID:n7+Lb81h
>>390
dlsymとRTLD_NEXTでググればわかるとおもうよ。
>>391
dlopenは不要
394login:Penguin:2007/11/12(月) 03:27:53 ID:V6ygCzcx
今linux security module(lsm)の勉強のために、
root_plug.cを改造して試行錯誤してるんですけど、
これって改造する度に、
毎回全てのソースをコンパイルをしなければいけないんでしょうか?
395login:Penguin:2007/11/12(月) 03:29:28 ID:5hFKzEaG
makeでやれば関係ないソースは以前作ったオブジェクトそのまま使ってくれるだろ
396login:Penguin:2007/11/12(月) 03:34:17 ID:V6ygCzcx
>>395
確かにそうなんですけど、
なんとなく気持ち悪くて、
毎回新しくオブジェクトを作りなおしてました。
でもそうしなくても問題ないということですね。
ありがとうございました。
397login:Penguin:2007/11/12(月) 04:11:37 ID:CZeG29nh
,`,(+Φy〆),`,
    ‘オソロシキ ゲンゴダナ…
398login:Penguin:2007/11/12(月) 05:40:50 ID:PgGOtZpU
>>391
>>393
dlsym( RTLD_NEXT , "function" )
でできました。
ありがとうございます
399login:Penguin:2007/11/14(水) 03:20:29 ID:LtZiY/oO
Linux上でWindowsのネイティブバイナリは吐けますか?
400login:Penguin:2007/11/14(水) 03:26:37 ID:d8LODZS2
>>399
cat explorer.exe > new_explorer.exe
401login:Penguin:2007/11/14(水) 08:14:07 ID:1nX1kzlD
mingwのクロスコンパイラが使えるよ。Debianならapt-get install mingw32で。
402login:Penguin:2007/11/19(月) 09:16:47 ID:y8uScUHY
ありがとうございます
403login:Penguin:2007/11/27(火) 09:45:49 ID:A2SYKSWK
xxgdbでpopen()をトレースすると
[New Cannot find thread 2049: invalid thread handle
と表示されて止まってしまうのだがこれって仕様?
404login:Penguin:2007/11/28(水) 00:05:12 ID:7Ks9DXGS
>>403
仕様
405403:2007/11/29(木) 00:55:49 ID:jIID4fY+
>>404
レスありがとう。
system()かexecl()系使うしかないのかしら・・・
406login:Penguin:2007/12/03(月) 03:31:14 ID:ACH4D/bz
opendir(3)の実装はどこにあるんでしょうか?
glibcのdirent/opendir.cを見ると

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

などと書いてあって行き詰ってしまいました。
407login:Penguin:2007/12/03(月) 04:25:46 ID:hZn7k5Pb
>>406
OSはLinuxだよね?
408login:Penguin:2007/12/03(月) 04:29:01 ID:hZn7k5Pb
glibc-2.x.x/sysdeps/unix/opendir.c だと思われる。
409406:2007/12/03(月) 12:14:14 ID:tGDLCTrZ
>>408 ありがとうございます。
410login:Penguin:2007/12/08(土) 00:56:20 ID:Ypv55KO5
syslogのバッファの中身を設定ファイルでは
なく、作成したプログラムで行いたいのですが
どうすればよいの?

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

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

412login:Penguin:2007/12/08(土) 02:36:59 ID:AOgHL0gM
>>410
syslog(2)かsyslog(3)のどっちだよ。
それより何がしたいの?
413login:Penguin:2007/12/08(土) 08:36:18 ID:Ypv55KO5
>>412
syslogを監視したいと考えています。
swatchみたいな仕組みを作りたいなぁと
414login:Penguin:2007/12/09(日) 19:30:32 ID:kFipn9r2
Linuxで組込み機器の開発をしています。CPUはMIPS及びx86で、カーネルは2.6、swap領域は用意していません。
RAMは128MBです。下記状況で悩んでいます。

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

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

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

確保エラーてきなそれで。
416414:2007/12/09(日) 20:49:28 ID:kFipn9r2
>>415 申し訳ありませんがLinuxの事情が知りたいです。

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

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

ページアウトを行なっている関数を特定して調べてみますが、識者の方がいらっしゃいましたら教えてください。
417login:Penguin:2007/12/09(日) 20:51:41 ID:vfNigUJQ
DirtyにならなきゃSWAPは関係ないんじゃないか?
PRIVATEマップだったら予約はされるのかねえ?
試せ。
418417:2007/12/09(日) 20:53:20 ID:vfNigUJQ
>>416
読む前に書きました。Linuxの識者ではありません。
419login:Penguin:2007/12/09(日) 21:56:02 ID:7Og5UxvH
こ、これが本当なら、使用頻度の低いプロセスの確保しているページが勝手に破棄されるってこと?

なにやら「書き換えられているなら」の和訳に難ありと見た。
420login:Penguin:2007/12/09(日) 21:59:02 ID:kFipn9r2
>419
破棄されても、必要になり次第またディスクから読めばいいから、問題なくね?
ディスク上のファイルが書き換えられていたらちょっと困るかも試練が。。。
421login:Penguin:2007/12/09(日) 22:13:07 ID:7Og5UxvH
>>420
ディスク上にあるデータばかりとは限らなくね?
そのへんをどうしているのか...

422login:Penguin:2007/12/09(日) 22:20:43 ID:18jA1TtH
ファイルだったら、どこにあろうと開いてるからカーネルの管理下じゃね
423login:Penguin:2007/12/09(日) 22:49:39 ID:7Og5UxvH
なるほど、カーネルが管理しているページから破棄していくのか。
でもそうだとすると、この議題である「事前に確保されたページ」がカーネルの管理とは言い難いと思うのだが。
424login:Penguin:2007/12/09(日) 23:08:38 ID:18jA1TtH
>>423は何言ってるのか分からんから放っておいて、
>>416は資料に書いてある通りだと思うんだけどね。mmap()のシステムコール先が
どんなマークつけてメモリ確保するか、もうカーネルのソース見たほうが早くね?
425login:Penguin:2007/12/09(日) 23:15:12 ID:kFipn9r2
>>424
了解。そうします。
426login:Penguin:2007/12/13(木) 21:59:11 ID:q3gVVh+0
ローカルの時間を設定する
関数ってなんて名前なの?
427login:Penguin:2007/12/13(木) 23:42:09 ID:gQtBTxyv
settimeofday(2)
428login:Penguin:2007/12/13(木) 23:57:28 ID:GAau1spk
>ローカルの時間を設定する
>関数ってなんて名前なの?

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

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

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

429login:Penguin:2007/12/14(金) 00:06:11 ID:q3gVVh+0
皆さんどうもです。

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

tigon3で使えないので泣き入ってますw
430login:Penguin:2007/12/14(金) 09:58:59 ID:kNHZHPst
もしかしてこっちのことだったりして

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

あるいは環境変数 TZ
431login:Penguin:2007/12/15(土) 02:47:51 ID:W22BenPt
それを言うならasia/Sapporoを作ってDSTを有効にする方法じゃね?
432login:Penguin:2007/12/15(土) 18:22:56 ID:Rwz9MLlG
カーネルモジュールのメモリリークチェックどうやってる?
slab使ってれば、destroy()でチェックになるようだが、
ページ単位だと手がないよね
433login:Penguin:2007/12/15(土) 23:53:57 ID:Sm85/PPc
>>432
カーネルは信じる
434login:Penguin:2007/12/17(月) 01:19:38 ID:xnChskak
自分でカーネルモジュール書く場合とか。
435login:Penguin:2007/12/17(月) 22:53:20 ID:YaVSPejA
自分を信じる
436login:Penguin:2007/12/17(月) 23:48:58 ID:QaEFKCXk
/proc/meminfoをreadすると
遅くていらいらするので

実態を直接参照したいのですが
何を呼び出せば得られますか?
437login:Penguin:2007/12/18(火) 00:47:54 ID:wJyWvjqc
/usr/bin/freeも/proc/meminfoをopenしてreadしているようだ。
ちょっと思いつかない。
438login:Penguin:2007/12/18(火) 01:04:48 ID:E/zgaCho
もう1つ別の話になりますが

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

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

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

今はカーネルのさまざまな変数をsysctl(2)や/procファイルシステムで見るように
なっているから、そっちが一般的だと思うが。
440login:Penguin:2007/12/18(火) 01:24:13 ID:v3HQV+pu
>>438
ここはプログラミングスレだから、そういうツールを紹介してほしい、じゃなくて、
そういうものを書きたい、という事だよね?
UNIXのプロセス管理、特にwaitシステムコールの仲間と、SIGCHLD周辺をよく
勉強するといいと思うよ。
441login:Penguin:2007/12/18(火) 02:52:41 ID:wJyWvjqc
>>439
OSは何ですか?Linuxだとnlistという関数はないっぽい
elfutilsの付属品で/usr/include/nlist.hというのがあるけどOSの情報をとるものではないようで。
442login:Penguin:2007/12/18(火) 23:54:49 ID:E/zgaCho
なぜPacket socketってRxのみなのですか?
Txにも対応して欲しいのですが

誰かなんとかなりそうってヒントくれませんか?
443login:Penguin:2007/12/19(水) 09:05:58 ID:3xyl6Kve
>>442
対応してるよ
444login:Penguin:2007/12/19(水) 23:34:24 ID:VN4RCfEY
>>443
そっちじゃなくてpacket_mmapだた

これは無理ですよね

無理ならstruct net_deviceを直接参照する
ようなコードをモジュールレベルで書きたいのですが
難しいですよね〜
445login:Penguin:2007/12/20(木) 00:47:26 ID:7G9805T8
eth0からeth7までをNIC1台の鯖に積んでるのですが
例えばeth0からeth4にパケットを転送するときって

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

たまにーマシンごとお亡くなりになってしまうし
446login:Penguin:2007/12/20(木) 01:00:32 ID:yx641/2O
チップセットがIntel以外とか、BIOSをageてないとかでないの
447login:Penguin:2007/12/20(木) 01:12:56 ID:gjGGDzJy
LinuxカーネルではRCUというデータ構造?が使われていると聞いたのですが、どんなものか
概要を知るにはどこが便利でしょうか?
448login:Penguin:2007/12/20(木) 01:18:52 ID:KxE4A1DD
>>445
いまいち状況がわかんないけど、sendfile(2)でもいいんじゃない。
449login:Penguin:2007/12/20(木) 01:29:14 ID:7G9805T8
>>448
in socket
out sokcet

これは無理ですよ。manページまともに読んでくれ
450login:Penguin:2007/12/20(木) 01:29:48 ID:KxE4A1DD
451login:Penguin:2007/12/21(金) 01:40:37 ID:A4fo/FEb
http://www.scaramanga.co.uk/code-fu/lincap.c

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

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

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

デスクトップをクリックした、というイベント取得したいんだけどどうやるんだ?
453login:Penguin:2007/12/27(木) 01:17:57 ID:n3z1YHrf
何を言ってるのかイマイチわからんかったので、とりあえず
「XCheckMaskEventでXButtonPressMask」
と答えておく。
454login:Penguin:2007/12/27(木) 01:21:58 ID:W7wVcUmw
ポルナレフ同士かよ
455login:Penguin:2007/12/29(土) 01:41:34 ID:6hJfAH2B
CPU使用率(百分率で0〜100)はどこで取得できますか?
456login:Penguin:2007/12/29(土) 02:13:14 ID: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
457login:Penguin:2007/12/30(日) 23:24:42 ID:zPNvSTb5
wとかtopのソースコード嫁ば?
458login:Penguin:2007/12/31(月) 06:20:04 ID:PRFdFPv5
>>457
以外とめんどくさいよね。 なんで定期的にpollしてアプリで計算しなければ
ならないのかと。 カーネルで計算しといてくれて/proc/... で読めれば
便利なのに。
459login:Penguin:2008/01/01(火) 12:50:10 ID:o4AC5iuF
計算する必要がないことをカーネルにやらせないだろ
460login:Penguin:2008/01/01(火) 16:13:09 ID:3yCJg0HF
>>458
あんた、アホや
461login:Penguin:2008/01/01(火) 16:31:40 ID:nCKl90za
>>458
養護施設か精神科完備の病棟に
入所したほうがいいよ。

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

みんな喜ぶよ?
462login:Penguin:2008/01/01(火) 19:50:29 ID:VCekl7x7
>>458
そういうドライバを書けばいいよ。

キャラクタ型ドライバの入門としては
結構いい題材だと思う。
463login:Penguin:2008/01/01(火) 22:36:49 ID:3yCJg0HF
ちゃんとdoubleで計算するんだぞ
464458:2008/01/01(火) 23:44:28 ID:yGAu0gFM
>>462
ぐぐったらそのような計算をしているコードを見つけた。

drivers/cpufreq/cpufreq_ondemand.c
465login:Penguin:2008/01/06(日) 23:48:28 ID:5PoYdP/T
Linuxの[vdso]って、シグナルにも何か関係があるんでしたっけ?
おしえてください。
466login:Penguin:2008/01/07(月) 00:49:32 ID:p6NEl8Gg
#include <sys/inotify.h>

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

reiserfsで使えないようなw
467login:Penguin:2008/01/07(月) 01:14:07 ID:YbV5WNsA
今どきreiserfsを使っている人はいないと思うけど一応
サポートはされていないらしい
468login:Penguin:2008/01/07(月) 22:17:39 ID:p6NEl8Gg
使う人いねーのかよw

じゃあ何が主流なのw?
469login:Penguin:2008/01/08(火) 00:11:17 ID:dGquMe0p
今から使う人はいなくても
数年前にreiserfs入れてまだ使ってる人は結構いると思うよ。
470login:Penguin:2008/01/08(火) 00:11:44 ID:2ujb3qeo
>>467
?。普通に使うだろ(縁起悪いけど)
471login:Penguin:2008/01/08(火) 00:38:19 ID:obtHiT+g
>>468
ext3かXFSが主流ですw
472login:Penguin:2008/01/08(火) 00:51:11 ID:g3yhOYjE
>>470
縁起悪いの知ってて使う人いるんだw
Jail好きなのね
473login:Penguin:2008/01/08(火) 01:05:49 ID:2ujb3qeo
>>472
あんなことになったのは残念だけど、Hansはファイルシステム設計という
領域に留まらない天才の一人だったと思う。

でも天才であっても他はやっぱり人間だった。判決はまだ出てないけど、
背景を聞くにつれて、あれだけの能力があっても人生の幸せを掴むのは
また別の話なんだなと無常を感じたよ。
474login:Penguin:2008/01/08(火) 01:33:05 ID:XSbSibRZ
まぁ悪魔の犯罪者だからなぁ

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




477login:Penguin:2008/01/11(金) 16:15:55 ID:JN9du13d
普通は環境変数から読んでくるんじゃない
478476:2008/01/11(金) 16:38:30 ID:f8prPTXJ
レスありがとうございます。
でも組込用LINUXで、自分自身で設定出来ない場合はどうするのでしょうか?
SDやUSBはあるので、アプリ実行時に、外部媒体へbatファイルを読みに行く
処理を追加し、環境変数を変更するのは低レベルでしょうか?
479login:Penguin:2008/01/11(金) 16:43:43 ID:wrx0pdGh
組み込み業界ってこんなやつばっかなん?
480login:Penguin:2008/01/11(金) 16:46:44 ID:HOV5kV5N
yaccとlex使って構文解析部分から作ってみるのもunix流の練習になるんじゃね?
481login:Penguin:2008/01/11(金) 16:48:17 ID:f8prPTXJ
組込もLINUXも初なので勘弁して下さい。
482login:Penguin:2008/01/11(金) 16:51:25 ID:/lhYIwjn
>>481
それ以前の問題じゃないの?
483login:Penguin:2008/01/11(金) 16:54:52 ID:f8prPTXJ
かなしす
484login:Penguin:2008/01/11(金) 16:59:49 ID:/lhYIwjn
できる人に教えてもらえば?
485login:Penguin:2008/01/11(金) 17:01:30 ID:f8prPTXJ
できるひと・・・いない
486login:Penguin:2008/01/11(金) 17:06:04 ID:/lhYIwjn
かわいそう...
487login:Penguin:2008/01/11(金) 17:37:55 ID:JN9du13d
perlを使って初期化ファイルから環境変数を作成する処理をラップすれば?
実行プログラム本体にはそれを読ませてやれば楽だろ
488login:Penguin:2008/01/11(金) 17:38:55 ID:qBjbfrrT
Linuxは初めてだって言ってるんだから、職種は関係ないだろ。
言語とか開発環境とか具体的に書いてもらわないとわからないけど、
GetPrivateProfileString()って言ったらWindowsのAPIだけど、プログラム中からコールするのかな?
Cの関数でいえばsetenv()、getenv()があるよね。
バッチレベルでいいならexportで登録しておくとか。
489login:Penguin:2008/01/11(金) 17:42:30 ID:JN9du13d
誰も職場内で方針示してやれないような仕事取ってくるなよなぁ〜w
痴呆が上だからIT業界は7Kだって言われる
490login:Penguin:2008/01/11(金) 18:15:42 ID:HOV5kV5N
組み込みlinuxでファイルI/Oを使って初期設定を読込み?
設定はヘッダーに入れてしまってハードコーディングじゃだめなのか?
初期設定を読ませるためだけに小さいとは言え余分なライブラリを使える
メモリと処理能力の余裕がある?

linux以前の問題な気がするなぁ、、、
491login:Penguin:2008/01/11(金) 18:52:28 ID:/lhYIwjn
書き込み fprintf
読み込み scanf
でやればいいんじゃないの?
492login:Penguin:2008/01/11(金) 20:02:51 ID:/lhYIwjn
scanf->fscanf
493login:Penguin:2008/01/11(金) 23:11:20 ID:MrZRBUAk
>>478
Linuxではそういう処理は起動スクリプトで行われる。 /etc/init.dの
中の他のアプリのスクリプトを参考に。
494login:Penguin:2008/01/12(土) 02:32:22 ID:FBfOnT6z
cmakeでwindowsとの互換をあくまで維持したい俺
495478:2008/01/12(土) 08:28:35 ID:DOVfiP6Z
昨日はショボンでしたが、
みなさんありがとうございました。
意見を参考に試してみます。
私含め、上司がレベル低いのは入社当初から知ってます。
496login:Penguin:2008/01/12(土) 09:34:51 ID:xcB/bLmK
>>495
Linux歴が浅いのでLinuxの作法を知らないのは当然だとして
それ以外の基礎知識や能力や言葉の使い方や文章の書き方は俺の数段上を行ってるなぁ
まぁ一緒にされたら迷惑だろうけど……。
最近稀に見る好印象な方だなぁと思った。
497login:Penguin:2008/01/12(土) 10:36:04 ID:QnvfkAhH
inotifyを
reiserfsで使ってみた。

間違ってイベントが無限に飛んでくる
バグとかあってプロセス10万
発生させてしまってマシン群止まっちまったw

reiserfs禁止にしたほうがいいぜ
498login:Penguin:2008/01/12(土) 13:06:44 ID:ZIVLcoIL
間違ったのがお前じゃないことを証明出来たら考える
499login:Penguin:2008/01/12(土) 14:07:31 ID:FBfOnT6z
>>495
pointed hair bossで検索するとちょっと幸せになれるかも
500login:Penguin:2008/01/12(土) 14:17:16 ID:QnvfkAhH
>>499
上司使えない云々より

pointed-haired bossをそんな風に書く奴が
このスレにいる方が恥ずかしい。もう来るなよw
501login:Penguin:2008/01/12(土) 14:51:08 ID:FBfOnT6z
>>472
siduxのインストール解説してるホームページでreiserfsを入れてたから
そのまま,まねして入れてしまった。
502login:Penguin:2008/01/12(土) 20:37:07 ID:6ANyg4lC
起動時の画面にペンギンは出てくるのに、起動メッセージが表示されないのはなぜ?
シリアルコンソールには起動メッセージが流れてるのに..
カーネルパラメータかデバイスファイルの設定が必要ですか?
503login:Penguin:2008/01/12(土) 22:52:36 ID:k/UIIV/1
>>502
どのメッセージのことか分からんが、
ディストリによってはそういうもんだろ
504login:Penguin:2008/01/13(日) 03:13:19 ID:0vRtfE6z
ちょっと質問を。「組み込みLinuxができる」って言える基準って何か皆さんありますか?

とあるデバイスにLinuxを載せてその上でアプリを走らせるという事をやったのですが、
結局はLinuxの一般的な機能(標準関数やらioctlやらopen("dev/xxx")やら)
を使ってアプリを作ったという具合で、どうも誰でもできるような表層的な事をやったような印象です。
これを組み込みLinuxと言うのは間違っている気がするのですが、

みなさんにとっては何をもって組み込みLinuxでしょう?
505login:Penguin:2008/01/13(日) 03:20:31 ID:YLI1I0ry
>>504
新しい CPU で gcc すら動かないプラットフォームなら gcc を移植する.
bootprom がなければ自前で移植/製作する.
いざとなったら仮想記憶とも戦う.
足りないドライバは自前で作る.
ユーザーランドは必要最低限な物だけ拾ってきて自分で構築する.

あたりかな.
506login:Penguin:2008/01/13(日) 07:01:23 ID:OSM5etr9
下ふたつはいいにしても、
 >gcc を移植する
これはないだろうさすがに。
507login:Penguin:2008/01/13(日) 07:09:47 ID:Hm7xBcnO
最近だとCellか
508login:Penguin:2008/01/13(日) 08:19:09 ID:YLI1I0ry
>>505
あるよ. mips core に特殊な co-processor つけた奴とか,
特殊用途に特化した processor 用のやつとか, 今まで 3回
移植した.
509login:Penguin:2008/01/13(日) 08:26:40 ID:YLI1I0ry
アンカー間違えた >>506
もっとも, 専用組み込みOS用で Linux 用じゃなかったけどな...
開発は全部クロスプラットフォーム.
510login:Penguin:2008/01/13(日) 10:53:17 ID:ujlOgFWo
>>508
そこまでやれなくても組み込みLinuxできると言っていいだろ
511login:Penguin:2008/01/13(日) 11:06:22 ID:2uIpuPRh
そう得意になって言うことでもないな
512login:Penguin:2008/01/13(日) 12:45:24 ID:ZbSPxFY0
>新しい CPU で gcc すら動かないプラットフォームなら gcc を移植する.
>bootprom がなければ自前で移植/製作する.
>いざとなったら仮想記憶とも戦う.

そもそもこの3つはLinux全く関係なくないか?
組み込みであることは確かだが。
513login:Penguin:2008/01/13(日) 13:11:47 ID:ujlOgFWo
俺も今度Linux組み込みやろうと思うんだが、

普通のLinuxのドライバ開発 VS Linux組み込み
Linuxの組み込み VS 普通の組み込み

ってどう違うんだ?
組み込みじゃないLinuxのドライバは経験あるんだけど
514login:Penguin:2008/01/13(日) 13:25:07 ID:tHHnWE3z
>>505が必要だということを知ってればいいじゃないか。
あとはどうやればいいのか自分でしらべればOTJになるし。
515login:Penguin:2008/01/13(日) 13:26:26 ID:tHHnWE3z
すべった。OJTだ。
orz
516login:Penguin:2008/01/13(日) 13:38:02 ID:88CnHFva
組み込みで適当にソース拾ってきてfbconでつまずいてますorz
画面に文字を出すにはfbconを使うと見たのだが。。
アルマジロにしとけばよかったかなぁ あれならいきなり動きそうだし
517login:Penguin:2008/01/13(日) 13:46:09 ID:YLI1I0ry
>>512
> >いざとなったら仮想記憶とも戦う.
MMU とか TLB とか言われる部分のアーキテクチャに依存するので, Linux の
VM が target のアーキテクチャをカバーしきれていない場合必ず発生する.
つか, VM 使った OS なら何だってそう, NetBSD でも結構泣いた.
518login:Penguin:2008/01/13(日) 14:10:42 ID:88CnHFva
MMU辺りと戦うとなるとかなりのパッチになりそうですね
趣味人には荷が重いし、プロだと開発費が厳しそう。
519login:Penguin:2008/01/13(日) 14:32:11 ID:YLI1I0ry
>>518
patch の量は大したことないよ. target のアーキテクチャと
OS の VM アーキテクチャの整合をどうとるかって問題だけだから...

ただし, 双方のアーキテクチャを
***うまく噛み合わせる手法***
を考え付くまでにやたら時間がかかる.
520login:Penguin:2008/01/13(日) 14:57:09 ID:ujlOgFWo
その前にCPUとOSのVMを理解する時間が必要だ
521login:Penguin:2008/01/15(火) 02:45:42 ID:eLLje4gP
linuxでgccを使っています。
cを使ってます。

fork-execでお聞きします。
binは、何かのコマンドです。

if(fork()==0)
{
execl(bin,bin,"gg*.c",NULL);
}else
{
wait();
}
とする場合にexecでは
*がメタキャラとして認識されないようです。

メタキャラを有効にする方法ってありますか?
522login:Penguin:2008/01/15(火) 03:25:29 ID:JuJ/Jd3b
>>521
*の展開は/bin/shの機能だからね。execveで展開される筈もなく。
system(3)やpopen(3)を使うか、自分で*をglob(3)で展開するかしないとダメやね。
523login:Penguin:2008/01/16(水) 01:30:06 ID:R+P7htm7
マルチスレッドでシステムコール使うの禁止なんですよ。
スレッドセーフか、分からないよorz  (man見ました)
524login:Penguin:2008/01/16(水) 02:24:00 ID:84amoxWV
>>523
システムコール禁止ってfork(2)もexecl(2)もシステムコールだと思うが
スレッドがどこに出てくるのか話が見えないんだが、
スレッドの中でfork(2)しようとしてるの?
それはまずいんでない
525523:2008/01/16(水) 04:49:53 ID:R+P7htm7
pthread_atforkと
fork-execの間に無駄な処理しない場合は、今の所OK
526login:Penguin:2008/01/16(水) 07:52:05 ID:XSPkVtkD
>>525
それ嘘だろ
527login:Penguin:2008/01/16(水) 11:41:09 ID:D4p47idN
あってるんじゃないの。
http://d.hatena.ne.jp/yupo5656/20040715/p1

ただ、
>マルチスレッドでシステムコール使うの禁止
というのは、何かまだ条件が足りていない気がする
528login:Penguin:2008/01/16(水) 11:50:50 ID:vAdXY+Zc
禁止じゃないのもある
529login:Penguin:2008/01/17(木) 00:22:17 ID:gFqea9nd
話割って入ってすまないが

iptablesのようにパケットフィルタを
したいのですが定義されるフィルタ情報が
1万もあります。
とてもじゃないけどまともに1つずつなめている
と終わらないので何か良い方法ないでしょうか?
530login:Penguin:2008/01/17(木) 00:26:04 ID:FBet0L5h
1000に分けて10回処理する
禅問答みたいだけど効果は補償できる、まじお薦め

でも1万ルールも追加しなくても、おそらくネットマスクを使うなりなんなり
方法ありそうな気がします。
531login:Penguin:2008/01/17(木) 01:04:02 ID:gFqea9nd
>>530
カーネル見ながら考えてみたけど
用は困りモノなのがサブネットマスクの値に
よる変動なので

struct mask_zone{
struct mask_zone *next;
struct mask_zone *not_null_next;
uint32_t mask;
};

とかリンクリストを用意、基本的にマスク長単位に分割
する方針ってどうかな?ハッシュも組み合わせる予定

これだけだと毎回33回舐めるからばからしいので
構造体にnot_null_nextっていうNULLじゃないリストへ
ポインタも入れて舐める回数を減らすっていうのはどうかな?


532login:Penguin:2008/01/17(木) 02:13:06 ID:7inzzgaQ
>>525
read(2),write(2),open(2)はマルチスレッドでも呼べると思うんだが。。。
というかシステムコール禁止したら、スレッドで何もできない。。
533login:Penguin:2008/01/17(木) 07:02:23 ID:IbgArDhc
何もできなくはないだろう。
「意味のあることは何もできない」というだけでw
534login:Penguin:2008/01/17(木) 09:54:37 ID:nrX5B3xa
man signal見た?
535login:Penguin:2008/01/17(木) 13:45:36 ID:zG6yMxAP
printfだって下位層でシステムコール呼ぶからな
536login:Penguin:2008/01/17(木) 16:27:11 ID:qlT5HX3f
弱い者たちが夕暮れ、さらに弱い者を叩くんだな。
537login:Penguin:2008/01/17(木) 16:34:11 ID:hGbWYs9C
その音が響き渡ればブルースは加速していくんだな。
538login:Penguin:2008/01/17(木) 17:04:30 ID:oO7ItHQ/
見えないGUIがほしい
539login:Penguin:2008/01/17(木) 23:14:33 ID:RgCsKsuT
見えないGNUを撃ちまくる
540login:Penguin:2008/01/18(金) 05:14:41 ID:12aBnOBC
/dev/shm/と/dev/ram0の違いがわからない

mount -t tmpfs tmpfs /mnt/ramdisk
しても/dev/shmとかは使わないんだな。
541login:Penguin:2008/01/18(金) 22:10:28 ID:ddex+v8t
>>540
俺も知らないが、ブロックデバイスとファイルシステムは違うんじゃない?
それとも、 shm_open(3) 読めばおわりか?
542login:Penguin:2008/01/20(日) 09:17:18 ID:GQI9e7dz
プログラム版の質問スレから誘導されてきました.

while ((c = fgetc(stdin)) != EOF) {
printf("[%d]: %c\n", num++, c);
}
とかやったらいつまでだってもfgetcから抜けれないのですが
stdinでEOFをキーボードから打ち込むにはどうしたらいいですか?
ちなみにLinuxのxterm上で動作させています.
543login:Penguin:2008/01/20(日) 10:02:05 ID:9Tl2aHlP
>>542
Ctrl+D
544login:Penguin:2008/01/20(日) 16:58:04 ID:QAkqHfcc
>>542
Linuxプログラミング固有の話じゃないんだが
誘導する奴はレベル低いな
545login:Penguin:2008/01/20(日) 17:33:57 ID:3cxUYgCe
同感
546login:Penguin:2008/01/20(日) 19:32:41 ID:60pqkMpi
かといってこんなのをプ板にのさばらせておくわけにもいかないからな
547login:Penguin:2008/01/20(日) 19:43:59 ID:m3nXxor1
プ板てw
548login:Penguin:2008/01/20(日) 20:15:53 ID:60pqkMpi
ムだム。間違えた。
549login:Penguin:2008/01/20(日) 21:25:35 ID:lhDKawjW
なんでムなん?
550login:Penguin:2008/01/20(日) 22:03:02 ID:O/GA+k/y
はるか昔、ムー族とマ族の争いがあって、千年続き、
それを嘆いた神がプ大陸を二つに分けたと伝えられる。
551login:Penguin:2008/01/21(月) 01:51:38 ID:EPN4E+gf
>>544
環境依存じゃないか?
UNIX なら stty(1) を見ろとなる。
で、プ^H^Hム板の質問スレなら Ctrl+Z or F6 な人もいるだろ。
552login:Penguin:2008/01/21(月) 21:33:07 ID:DS13UDOd
>>549
プログラ「マ」(について語る|がダベる)板、通称マ板と区別するため
553login:Penguin:2008/01/22(火) 22:56:28 ID:3SjBwwbG
pthreadtypes.hで定義されているpthread_attr_t構造体ですが、
2.6.9と2.6.18で見比べたところ全く違う内容になっています。
というかpthreadtypes.h自体に大幅な変更があったような。
いつのバージョンで変わったか分かる人いませんか?
554login:Penguin:2008/01/22(火) 23:06:29 ID:1aLYQ0Xu
struct sk_buffをそのままユーザ空間に
ひっぱりだしたいんだけど

どうすればいいのかなぁ
555login:Penguin:2008/01/22(火) 23:11:26 ID:Z7iV0h+U
>>553
ユーザアプリからは、構造体の中身を参照しちゃいかんのとちゃう?
556553:2008/01/23(水) 00:20:47 ID:rX2IdG6k
>>555
まじですか!?
そういうつくりになってたんすね。
pthread_attr_init()系の関数でアクセスですかね。
ありがとうございます。
557login:Penguin:2008/01/23(水) 02:08:02 ID:n7QxPJKv
すまんstatを使ってファイルサイズを調べたいんだけど
if (stat(FileSt, &sb) == 1)
{
 (sb.st_size>0)
 {
  ifs_flg=1;
 }
}

ファイルが存在するか?するならサイズは?みたいにしてます。
これを1行でstat(FileSt, &sb->st_size) >0
みたいに出来ませんか?
558login:Penguin:2008/01/23(水) 02:08:50 ID:n7QxPJKv
あ、ファイルは存在する前提です
559login:Penguin:2008/01/23(水) 04:08:18 ID:iwlYPuMF
statなんたらって自前の関数用意すれば
560login:Penguin:2008/01/23(水) 11:43:41 ID:G50LtKQp
>>557
単純にショートカットじゃダメ?
if ((stat(FileSt,&sb)==1) && (sb.st_size>0)) {
...
}
561login:Penguin:2008/01/24(木) 01:44:45 ID:XcZJxRmS
>>560
それやってたんですが、うまく行かない。
あ、括弧なしだったからかな?
括弧つけてみます
562login:Penguin:2008/01/24(木) 09:06:49 ID:+0KdBqsj
recvfromってタイムアウト設定はできないんですか?
データが届かなかったら永久に待ってそうです

UDPのプログラムで任意の時間返答が無かったら
さっさとrecvfromを抜けたいんですが...
563login:Penguin:2008/01/24(木) 09:12:54 ID:+a49+I+1
>>562
selectを使いたくないならSO_RCVTIMEO
564login:Penguin:2008/01/24(木) 09:44:54 ID:+0KdBqsj
>>663
int timeout = 5000

setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, sizeof(timeout));
とやっても抜けられないです...やはりずっととまったままです
565login:Penguin:2008/01/24(木) 09:51:20 ID:+a49+I+1
struct timevalとintって?同じもの?だっけ?5000秒?待ったり?
566login:Penguin:2008/01/24(木) 10:06:19 ID:A5lAfTzI
>>565
struct timeval と int は別
567login:Penguin:2008/01/24(木) 10:17:10 ID:FNc6yZ5O
565 は知ってて書いているようにしか見えない。

>>564
ためしてないが、その setsockopt(2) は EINVAL になってたりしないか?
568login:Penguin:2008/01/24(木) 10:20:13 ID:+0KdBqsj
>>565-567
できました!
569login:Penguin:2008/01/24(木) 10:27:34 ID:+0KdBqsj
おかげさまでタイムアウトは無事できました
まだ疑問があるのですが
struct timeval tm;
tm.tv_sec = 5;
setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, (void*)&tm, sizeof(struct timeval));

とやってもrecvfromにてあきらかに12秒近く待たされています...
あんまり厳密に守られるわけではないのでしょうか?

他のシステムコールの呼び出し等にて7秒以上かかってるとも思えないのですが
570login:Penguin:2008/01/24(木) 10:57:59 ID:+a49+I+1
名前解決じゃね?
571login:Penguin:2008/01/24(木) 11:16:26 ID:+0KdBqsj
>>570
ipアドレスをinet_addr直でやってます.
572login:Penguin:2008/01/24(木) 11:27:31 ID:Z64zlv7x
>>571
tm.tv_usecはクリアした?
573login:Penguin:2008/01/24(木) 11:52:54 ID:+0KdBqsj
>>572
なんという不注意...注意散漫になってるようです.
無事指定時間でタイムアウトさせる事ができました.ありがとうございます
574login:Penguin:2008/01/28(月) 19:51:08 ID:oy6mNs1o
現在、2枚のNICを持つマシン上での開発でつまづいています。

それぞれのNICに同じネットワークのIPアドレスを振ります。
例:eth0:192.168.1.10 eth1:192.168.1.11

この状態で、普通にSOCK_DGRAMにてソケットを生成し、適当なIP
アドレスに対して送信します。
すると、どちらのNICから出すかはルーティングテーブルでどちらが
上に位置するかで決まってしまいます。

これをNICを指定して送信したいのですが、可能でしょうか?
RAWソケットを使えばできるのですが、仕様上の制限があって
使えません。
575login:Penguin:2008/01/29(火) 09:35:56 ID:Jv26bMRM
>>574
bindしてから送信 はどうだろう
やったことないけど
576login:Penguin:2008/01/29(火) 09:52:16 ID:BgbmjeIx
>>575
source address を指定したいわけじゃなくて、どのインタフェースから
出したいか、ということだったらそれじゃぁダメだ。

>>574 がなんでそんなことしたいか知らないけど、iptableのmangle tableで
markして、iproute2で該当するパケットだけルーティングテーブルを別けて
やるほうが自然だろう。
http://www.atmarkit.co.jp/fsecurity/rensai/lids12/lids01.html
もしこっちが使えないならrawソケットでやるしかないよ。
577login:Penguin:2008/01/29(火) 15:44:25 ID:Jv26bMRM
ところで
main(){
 int a=0;
 for(;;){
  printf("%d\n",a++);
  sleep(1);
 }
}
みたいなプログラムを書いたんだけど、これを
$ ./a.out > hoge
としてもhogeに出力されない。
バッファリングされてるみたいなのでprintfの後ろに
sync()やらfsync(1)やら入れてみたけど駄目っぽい
これどうしたらいいんだっけ?
578login:Penguin:2008/01/29(火) 16:25:19 ID:E7XlIkuM
fflush(stdout);
579login:Penguin:2008/01/29(火) 22:53:11 ID:pK88c6Qm
いまどき\nでフラッシュしないstdoutがあるのか・・・
580login:Penguin:2008/01/30(水) 02:17:24 ID:VGRpnUoT
そりゃ・・・、端末に向いてない stdout(3) なら line buffered じゃなくても
いいんでわ。
581574:2008/02/01(金) 11:04:33 ID:KZ/Tojjt
レス遅れてしまいすみません。

>>575
>>576さんの言うとおりbind()をしてから送信すると、L3レベルでは大丈夫
でしたがEtherealでキャプチャするとL2レベルで、MACアドレスが同じに
なっていました。

>>576
提示してもらったWebを確認しました。現在開発しているのはなかなか
処理能力的にシビアな箇所なので、RAWソケットを使用できるように
説得してみます。
582login:Penguin:2008/02/01(金) 19:24:02 ID:MPKtEvB1
というか、bondingしてあとは知らん、ではなんかいかんの?
583574:2008/02/03(日) 21:37:06 ID:mkJ6nZ+Q
>>582

bonding、初耳だったのでぐぐってみましたが中々興味深い技術です。

ですが、仕様上送信元IPアドレス(つまり自分が持つやつ)が複数あり、かつ
対向の種類によって決まってしまっているので使えないようです。

けどこの技術に似たようなのを実装しなければならない機能ブロックも
あるのでこれはこれで提案してみようかと思います。

そういえば、RAWソケットって送信するときにPath MTU Discoveryをソケット
オプションで無効にしてもフラグメントされないなーと思ったら、man raw(7)に
バグとして挙がっているんですね…(使用OSはFedora7)
これも自分で実装しなければならないなぁ。
584login:Penguin:2008/02/03(日) 22:24:34 ID:+lhwKKGQ
>>574
最初から難しいこと考えないで、まず既存の機能 (>>576 の iptable + iproute2等) で
やってみて、それでパフォーマンスなどの問題がないかどうか確認して、どうしても
独自に実装しなくてはならないことを確認してから raw ソケットなり、カーネル
モジュールで何か作るなりすることを検討するほうがいいぞ。
585login:Penguin:2008/02/04(月) 19:10:09 ID:hfVjOmBk
自分のサブネットマスクを取得するのはどう書きますか?
IPアドレスは分かってるとして。
586login:Penguin:2008/02/04(月) 21:29:01 ID:nLbVhZ24
>>585
getifaddrs(3)
587login:Penguin:2008/02/04(月) 21:35:32 ID:G8QRQQli
>>586
IPv4でも使えんの?
588login:Penguin:2008/02/04(月) 21:56:25 ID:nLbVhZ24
>>587
使える。v4でしか使えないバグならglibcが2.3の頃にあったはずだが。
589login:Penguin:2008/02/05(火) 18:12:27 ID:MeDWiyY9
大量のスレッドを生成できなくて困っています。
現在、上限10000個のスレッドを生成したいのですが(そういう仕様なので…OTL)
スタックオーバーフローで生成できていません。

解決策としては、デフォルトでは大きすぎるスタックサイズを
pthred_attr_setstacksize() で減らし、また予めスレッド用スタック領域を
malloc()にて確保し、これをpthread_attr_setstackaddr() にて設定することを
考えました。実際やってみると確かにデフォルトよりは生成数は上がっているの
ですが、到底10000個には追いつきません。

そこで質問なのですが、上記のようなアプローチで合っているのでしょうか?
あと、pthread_attr_setstackaddr() の第2引数(つまり、スタック開始アドレス)は
10000個のスレッドで同一なのでしょうか?

10000回のpthread_create()ループの外で1回だけ
pthread_attr_setstack(&attr, g_pthread_stack) をこーるするのか、

ループの中で
pthread_attr_setstack(&attr, g_pthread_stack+STACK_SIZE*i)のように
スタックサイズ分オフセットを毎回させるのか

が分からないです。
590login:Penguin:2008/02/05(火) 18:15:04 ID:GUozEVBV
それができたとしてうまく動くと思ってやってるの?
591login:Penguin:2008/02/05(火) 20:56:19 ID:SlsIEQrM
何をやるのか、メモリをどれだけ積んでるか、ということによりけりだな。
pthreadとか知らんのでclone(3)で自分でスタックを用意して一万個ほど
スレッドを生成したことはある。使い方によっては普通に動く。
592login:Penguin:2008/02/05(火) 21:03:59 ID:GUozEVBV
それはすごい。
593login:Penguin:2008/02/06(水) 06:41:46 ID:nwp5GfWb
AMD64とかIA64とかでメモリを64GBくらい積めば大丈夫じゃね?
594login:Penguin:2008/02/06(水) 07:25:44 ID:s++avmRm
カーネル側で使うのが各スレッド8KB。ユーザ側のスタックを4KBに抑えれば
スレッドをひとつ増やすごとに必要なのは12KB。10000個ならざっと120MB。
595login:Penguin:2008/02/07(木) 00:54:55 ID:GYgs3mMU
>>589

> あと、pthread_attr_setstackaddr() の第2引数(つまり、スタック開始アドレス)は
> 10000個のスレッドで同一なのでしょうか?
同一で良いはずが無いねえ。スレッド毎に確保ですよ。

スタックの先頭アドレスはページ境界にアラインさせないとsetstackaddrがEINVALで失敗する。
mallocではなくて、posix_memalignかmmapでスタック用のメモリを確保するとよい。
596585:2008/02/08(金) 09:16:22 ID:Tg+rPbrB
サンクス! >>586 , etc...

それググってみましたが、IPアドレスが幾つも取れるじゃないですか。
その中でIPアドレスをマッチングして、そのサブネットマスクを取るしかないんでしたっけ?

それとも、サブネットマスクって1台のマシンに複数IPアドレスがあっても共通?
597login:Penguin:2008/02/09(土) 00:02:49 ID:1XOuKxIO
つーか、IPアドレスに対して、サブネットが対応してるでそ。
インターフェースが2枚あったら、
eth0 : 192.168.1.5/24
eth1 : 10.23.45.67/16
とかさ。
598login:Penguin:2008/02/09(土) 01:25:11 ID:eMQaM6TS
man引けば分かるはずなんだが、今の場合はそれ以前の問題のような。
プログラミングより、くだ質が妥当なような。
599login:Penguin:2008/02/09(土) 01:57:14 ID:pxZu1S51
>>598
manを引いても基本原則知らなきゃわかんないだろうな
こういうのを一番簡単に身につけるには
教科書的なものを頭ッから丸暗記するのが手っ取り早い
600login:Penguin:2008/02/10(日) 17:43:00 ID:AB987pUW
mallocをすると、値が帰ってくる前にsegmentation faultするんだけど・・・
これはライブラリの領域をどこかで破壊しているということでよろしいのでしょうか
601login:Penguin:2008/02/10(日) 18:47:08 ID:rgXsI3qI
gdbで引っ掛けてどこで死ぬかを見極めるべし
まあメモリ破壊の類だとは思うが
602login:Penguin:2008/02/10(日) 20:52:25 ID:+TLKCHqg
>>600
メモリ破壊だったら、Electric Fenceが便利かもね。
603login:Penguin:2008/02/10(日) 20:55:13 ID:qj0nK6Tb
valgrindのほうが。
604login:Penguin:2008/02/10(日) 23:03:17 ID:W61q/SHI
自分に強壮剤がいいよ
605login:Penguin:2008/02/11(月) 12:45:49 ID:0peP2Ab+
>>601-603
ありがとう
ドリンク飲んでがんばります
606login:Penguin:2008/02/11(月) 20:57:09 ID:JHZIo94H
>>600
エラー処理をしているのかと子一時間

NULLが帰ってきたら、どうしてるの?
607login:Penguin:2008/02/11(月) 20:59:54 ID:NXuZoz9l
実際mallocでNULL返ってくるの? CoWなのに。
608login:Penguin:2008/02/11(月) 21:58:06 ID:g58d+k53
>>607
CoWは関係ないような。

というのはともかく、極端に大きなmallocならNULLが戻るよ。
搭載メモリ量とか、32bit/64bitにもよるかもしれないけど、malloc(1*1024*1024*1024)とか。
609login:Penguin:2008/02/11(月) 22:59:43 ID:v7vkIa+N
>>607
物理ページ自体は必要ないが、メモリ空間が足りなくなる可能性はある
x86 (32bit) だと、ユーザ空間が3GB・カーネル空間が1GBで分けられてたはずだから、
多分2.5GB確保は成功して、3GB確保は失敗すると思う
610login:Penguin:2008/02/11(月) 23:27:43 ID:g58d+k53
>>609
適当なプロセスをcat /proc/pid/mapsしてみればわかるけど、.soやらなにやらが3GBのそこかしこにmapされてしまっているから、
2.5GB連続で仮想メモリ確保ってのは難しいと思うよ。

例えばfirefoxあたりだと色々mmapされすぎていて全く無理ですね。
611login:Penguin:2008/02/11(月) 23:49:20 ID:H5r6W4j2
>>606
>>600は「値が帰ってくる前に」と言ってるんだから、NULLが帰ってくるも
ヘッタクレもないと思うんだが。
当然、返り値をチェックしようとしているけど、帰ってくる前にSIGSEGVなんだろ。
612login:Penguin:2008/02/12(火) 21:41:58 ID:i/htmIMa
ファイルAとBが同一パーティション上にあるかどうかLinux的にはどうやって判断すればいいんでしょうか
613login:Penguin:2008/02/12(火) 23:16:42 ID:6Xg+LWoP
パーティションよりファイルシステムの場所を調べる方が汎用性があって
尚且つ簡単そうで良さげ。スクリプトでやっつけるならdfにパスを食わせて
出たファイルシステムを比較すれば一丁上がり、、、かなぁ。

どうしてもパーティション、という場合は知らん。
614login:Penguin:2008/02/12(火) 23:25:33 ID:vZRSZKGy
今Linuxが手元にないんだけど、レギュラーファイルに対してstat(2)すると
struct stat::st_devってどうなるんだっけ?
615login:Penguin:2008/02/12(火) 23:36:11 ID:i/htmIMa
>>613
ありがとうございます。mtab読みに行くことにしました。
616login:Penguin:2008/02/12(火) 23:48:38 ID:943cnSqV
>>614
vmware+Linux入れなよ
617login:Penguin:2008/02/13(水) 00:42:27 ID:XbwK8Zpg
>>614
普通はそれだと思う
618614:2008/02/13(水) 01:03:45 ID:eUvEe13x
>>617
汲み取ってくれて、ありがとう。
619login:Penguin:2008/02/13(水) 07:33:31 ID:pBknmnOU
結局、パーティションまでは分からんということだな。
620login:Penguin:2008/02/13(水) 07:47:41 ID:hT3T8ff2
>>619
>>614にあるのじゃどうしてだめなの?
621login:Penguin:2008/02/13(水) 11:59:04 ID:G1ltJVUD
HTTPクライアントを作ろうと思いますが、
自分の空きポートはどうやったら取得できますか?
622login:Penguin:2008/02/13(水) 12:14:39 ID:5QyCkyQ9
>>621
HTTPクライアントならサーバの80につなげば
いいだけじゃない?空きポートを知る必要が
わからん。(connect()で80につなげばいいだけ。)
クライアントの使用するポートはプロトコルスタックが
空いているポートを適当に割り振ってくれる。
623621:2008/02/13(水) 12:23:24 ID:G1ltJVUD
>>622
あっ、そーですか。有難う。

httpで相手のポート80に接続して、writeするだけですね。
(tcpと大して変わらないのかって、tcpで接続するプログラム書いたことないけど)






関係ないけど、それらがC/C++のクラスライブラリになってたりしませんよね?
624login:Penguin:2008/02/13(水) 12:25:48 ID:YOhJXxZI
>>623
curl
と言いたいけど、お前にはsystem("wget http://wwwwwwwww");で充分だ。
625login:Penguin:2008/02/13(水) 13:21:11 ID:hYkhPPAJ
>>623
TCP 以外の何でアクセスするつもりなんだ?
626login:Penguin:2008/02/13(水) 18:02:37 ID:G1ltJVUD
>>625
HTTP


ところで、HTTPエンコードする標準メソッドなんてありますか?
627login:Penguin:2008/02/13(水) 18:20:50 ID:G1ltJVUD
知りたいのは、HTTP エンコードじゃなくて、URL エンコードでしたorz
628login:Penguin:2008/02/13(水) 19:29:27 ID:Mx9E0jHA
>>626
HTTPってTCPじゃね?
629login:Penguin:2008/02/13(水) 19:59:54 ID:JBOJRmRv
>>626を見ると、>>624は正しかったんだな、と思った。
630login:Penguin:2008/02/13(水) 20:54:09 ID:eUvEe13x
>>628
あらゆる意味で違うと、いちおう突っ込んでおけばいいかな?
631login:Penguin:2008/02/13(水) 21:03:49 ID:N8sc8JVE
>>628
TCPってIPじゃね?
以降物理層まで続く↓
632正義の味方:2008/02/13(水) 23:20:51 ID:5UuGIiF+
地球を救う正義の味方、今こそ参上!!
http://seiginomikata.xxxxxxxx.jp/
633login:Penguin:2008/02/14(木) 01:22:24 ID:AMxoEq8N
634login:Penguin:2008/02/14(木) 05:16:55 ID:vPDIK5xn
HTTP on TCP on IP on Ethernet
635login:Penguin:2008/02/14(木) 10:46:16 ID:yt/o7Lpq
UDPはTCPじゃないおねw
636login:Penguin:2008/02/22(金) 11:00:23 ID:G/AgynaC
自分が開いているファイルポインタを監視して,
ほかのプロセスから見られているかどうかをチェックする方法ってありますかね?
637login:Penguin:2008/02/23(土) 18:26:40 ID:fMtbJMPF
inotify...でできたようなできなかったような。
638login:Penguin:2008/02/24(日) 23:17:29 ID:BrtZUi2N
http://streaming.linux-magazin.de/en/program_fosdem.htm
cmakeについてのリアルタイム講演が聞けるそうな
639login:Penguin:2008/02/25(月) 17:29:44 ID:gh7YVSGk
gdbってスレッドの中まで追跡してくれないよね?
今開発しているプログラムが生成したスレッドの中で何かおかしなことを
やってるみたいなのだが再現性が100%にならず困っている.
gdbでlistとかやっても表示されるのはスレッドを生成してる
関数のところが表示される.
せめてどこで落ちてるのか分かればいいんだが...
640login:Penguin:2008/02/25(月) 17:56:48 ID:cSNR/6sC
マルチコア環境上で、指定したスレッドを実行しているCPU番号を取得する
方法はないでしょうか?

ちょうど、RTLinuxでいうrtl_getcpuid()のようなものを探しています。

# sched_setaffinity() を利用したCPU括り付けでのマルチスレッドの動作確認を
 しようと思っています。
641login:Penguin:2008/02/25(月) 18:39:00 ID:/pUYRVYK
info threads
thread thread_no
642login:Penguin:2008/02/26(火) 22:09:55 ID:Gzm7dZQg
>>640
CPU番号を取得するのがカーネル空間なのかユーザ空間なのかで違う。
カーネル空間ならthread_infoのcpuを読めばいい。
ユーザ空間ならthread_infoのcpuを読むようなカーネルモジュールを作って
システムコールで呼ぶしかない。ただ、システムコールのためにカーネル空間に入って
戻ってきたときには別のCPUに切り替えられているかもしれないので使い物にならない。

643login:Penguin:2008/02/26(火) 22:12:32 ID:Gzm7dZQg
>>636
fuserでも呼べば?
644login:Penguin:2008/02/27(水) 01:24:58 ID:YHDpNSRs
>>639
スレッドの本を読んで勉強するほうが早い
645login:Penguin:2008/02/27(水) 02:36:14 ID:s4UfhcJi
>>639
>>641のコマンドをgdbで実行すれば追跡できるけど?
gdbはVer.5辺りからスレッドに対応してるよ。
646login:Penguin:2008/03/04(火) 05:37:01 ID:hH79PlpS
Linuxではディレクトリをopenしてファイルディスクリプタを
得ることはできないのでしょうか?
647login:Penguin:2008/03/04(火) 06:57:58 ID:YiS1gKTk
>>646
opendir?
648login:Penguin:2008/03/04(火) 11:16:05 ID:c6KWa7j/
ファイルディスクリプタが欲しいんですよ。
ディレクトリのディスクリプタに対してlockfしたらどうなるか試したかったもので。
649login:Penguin:2008/03/04(火) 11:18:58 ID:f138xmmP
man open
O_DIRECTORY
650login:Penguin:2008/03/05(水) 21:11:41 ID:DSOAwXvG
(引数+環境変数)の長さはARG_MAXで制限されると見たのですが、実験してみると
ARG_MAXをはるかに超えて環境変数を保存できるようです。
これはそういう仕様と理解していいのでしょうか?ポインタでも示していただけると幸いです。
Linux ru 2.6.22-14-generic #1 SMP Tue Feb 12 07:42:25 UTC 2008 i686 GNU/Linux

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
char* str;
int i;
int size = 10000*1024;

str = malloc(size);

fprintf(stderr, "ARG_MAX=%d\n", sysconf(_SC_ARG_MAX));

memset(str, 'a', size);
memcpy(str, "hoge=", 5);
putenv(str);

printf("%s", getenv("hoge"));

free(str);
return 0;
}
651login:Penguin:2008/03/06(木) 20:49:10 ID:xYqhiEhk
>>650
仕様かどうかは知らんが、free(str)の前にsystem("ls");といれて、
straceつきで実行してみればARG_MAXがどこに効いているかわかるんじゃね?
652login:Penguin:2008/03/07(金) 02:06:25 ID:6CTqh5eF
650じゃないけどやってみた。
現在の環境変数hogeの5文字目を読むプログラムenvcをsystem()で実行。
execve("/bin/sh", ["sh"..., "-c"..., "./envc"...], ["other-env=.....", "hoge=aaaaabaaaaaaaaaaaaaaaaaaaaa"...]) = -1 E2BIG (Argument list too long)
exit_group(127) = ?
で失敗するよう。
自プロセス内のputenv,getenvは単にアドレスを保存しているだけみたいな感じ。
653login:Penguin:2008/03/07(金) 08:22:54 ID:UMdAZxi/
Linuxでどうやってるのか知らないけど、古典的なUnixだとputenvしたときには
書く場所がなければmallocして場所を作るしなあ
654650:2008/03/07(金) 18:57:12 ID:WLDLR5XW
ありがとうございます。
そういえば FreeBSD の putenv も malloc していたような記憶があります。
655login:Penguin:2008/03/09(日) 22:25:35 ID:OicC4WBL
kernel 2.6.22でnetdevice.hのnet_deviceに
なぜstruct net_device *next消えてるの?

linux-sourceにはあるが
linux-headerには無い

なぜ?
656login:Penguin:2008/03/09(日) 23:46:44 ID:8q2J0afq
>>655
linux-(source|header)にある/ないは知らんが、struct net_device::next
が消えた理由は以下らしいよ。
ttp://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.22.y.git;a=commit;h=7562f876cd93800f2f8c89445f2a563590b24e09
657login:Penguin:2008/03/11(火) 01:36:58 ID:Rs8OmFO7
>>655
なるほど解ったどもね

今snullベースで
仮想Ethernetデバイスを作ってるんだけど

たとえばeth0がすでに登録されてて
eth0のパケットをsnull0で送受信したい場合って

initの中で
dev_get_by_name("eth0);
でeth0のnet_devicはとって来れるけどこいつを
どうやって料理すればいいんだ?

なーんにも思いつかないw
658login:Penguin:2008/03/15(土) 18:03:02 ID:NRAbwdcX
/usr/include/pgsql/server/postgres.h と /usr/include/wand/MagickWand.h を
一緒に #include すると、コンパイル時に以下の警告が出るのですが、
これってどうにかならないもんしょうか?

/usr/include/pgsql/server/pg_config.h:14 から include されたファイル中,
/usr/include/pgsql/server/c.h:53 から,
/usr/include/pgsql/server/postgres.h:48 から,
main.c:9 から:
/usr/include/pgsql/server/pg_config_x86_64.h:571:1: 警告: "PACKAGE_BUGREPORT" が再定義されました
/usr/include/wand/wand-config.h:10 から include されたファイル中,
/usr/include/wand/MagickWand.h:29 から,
main.c:8 から:
/usr/include/wand/wand-config-64.h:491:1: 警告: ここが以前の宣言がある位置です

以下が重複しているようです。
PACKAGE_BUGREPORT
PACKAGE_NAME
PACKAGE_STRING
PACKAGE_TARNAME
PACKAGE_VERSION

ググっても分からなかったので、せめてヒントでももらえると助かります。
環境はCentOS 5、postgresql-8.2.5-2PGDG、ImageMagick-6.2.8.0-3.el5.4 です。
コンパイルコマンドは以下のような感じです。

gcc main.c -m64 -I/usr/include/pgsql/server -lpq -lWand
659login:Penguin:2008/03/15(土) 20:05:58 ID:f5+YWLcF
>>658
そのヘッダの中身見てないけど、警告がでないようにするなら、
1. postgres.h,MagickWand.hを#includeしている間に#undef PACKAGE_*
 を入れる。
2. main.cから、postgres.hが必要な部分とMagickWand.hが必要な部分を
 別々のファイルに関数として切り出して、それぞれのファイルでは
 postgres.hかMagickWand.hのどちらかのみ#includeする。
のいずれかでどうよ?
660login:Penguin:2008/03/15(土) 20:50:51 ID:NRAbwdcX
>>659
やっぱそうするしかないよねー。
前者の方法でやってみるー。ありー。
661login:Penguin:2008/03/15(土) 21:36:12 ID:O4AlaY1A
ABが特に詳しく日本外務省について暴露しています

福田が尖閣諸島を中国に売り渡そうとしている!

外務省と福田政権が日本を中国に売り渡す・・・
青山繁晴氏が実際に見てきた日本の癌

@ http://www.youtube.com/watch?v=hZ5tOzAXtkc
A http://www.youtube.com/watch?v=Rl1vV_53KnU
B http://www.youtube.com/watch?v=sR9CpB7FgHo
662login:Penguin:2008/03/15(土) 22:23:04 ID:iDC6xMbb
kernel空間でキューを作ってmmapで参照させたいんだけど
余計な処理が込み入ってないサンプルってありますか?

ドライバの形式はなんでもかまいません。
663login:Penguin:2008/03/17(月) 00:43:36 ID:nawcmHh0
>>662
お前K社か?
664login:Penguin:2008/03/17(月) 12:33:53 ID:nScJcaBW
自動停止してくれません。判りますでしょうか?

前提条件:テスト用に/root/test_stop.sh に、 プロセス停止のシェルプログラム作成。
(ちゃんと停止しないとファイルが壊れるため)

1:/etc/rc.d/init.d/test_stop として、下記を作成
-----------------------------
#!/bin/bash

# Stop

/root/test_stop.sh
-----------------------------

2:/etc/rc.d/init.d/test_stop に 実行権をつける
3:リンクの作成
ln -s /etc/rc.d/init.d/test_stop /etc/rc.d/rc3.d/K99test_stop


コマンドラインで
/root/test_stop.sh
/etc/rc.d/init.d/test_stop と打ち込むと実行(正常に停止して)されますが、
サーバーを再起動しても動いて(正常に停止して)くれません。(涙
665伊藤:2008/03/17(月) 15:29:49 ID:CWhG8eFa
>>664
エスパーのオレが回答する。

パスが通っていない。
init.dの下にある他のファイルを参考にパスを通しなさい
/bin,/sbin/usr/bin/usr/sbin くらいは通さないと駄目かと。


>>666
お前アホだろw
666664:2008/03/17(月) 15:49:11 ID:nScJcaBW
??
 パスですか? 他のファイルをみてますが、、今ひとつ??
667login:Penguin:2008/03/17(月) 17:01:34 ID:oHIFzbD+
uClinuxでpthreadって使えるでしょうか
全く調べてないですけど
668login:Penguin:2008/03/17(月) 21:40:09 ID:hxyCMaK/
>>664
直接ln -sなんてやってるのもまずいし、そもそもディストロが何か書いていない
時点で、rc.d以下がどういう挙動をするのかということがRHELやらSLESやら
ディストロによって違うということが分かってないだろ。
669login:Penguin:2008/03/17(月) 21:49:58 ID:hxyCMaK/
つーか、どういう動作を期待していたのか、何を試してどうなったのかも分からんが、
スクリプトの書き方からして根本的に駄目だ。
他のスクリプトをひとつでも見れば、どうしようもなく間違ってることくらい
すぐに気づくはずなんだが。
670login:Penguin:2008/03/17(月) 22:06:58 ID:e/wCVwfQ
>>669
じゃあ手本見せてやれよ
分からない分からないばかり言ってないでさ
671login:Penguin:2008/03/17(月) 22:21:17 ID:YyeBPwCr
手本は多数インストールされてるだろが。それを見れ。
672login:Penguin:2008/03/17(月) 22:41:19 ID:6m6H6SB/
>>663
Kってどこだぉ?
673login:Penguin:2008/03/17(月) 23:18:23 ID:EaiHugoC
>>672
Kentucky Fried Chicken に決まってるじゃないの
674login:Penguin:2008/03/17(月) 23:20:52 ID:+R0hndtT
>>664
runlevel 3は再起動じゃなかったりするわけだが。
/etc/inittabに説明が書いてないか?

ついでにK99じゃ遅すぎて、呼ばれる前にkill -TERMくらうと思うわけで。

>>667
使えるはず。
kernelじゃなくてuClibc側が対応してなかったりする可能性もあるが。
675login:Penguin:2008/03/17(月) 23:46:58 ID:s0icvwwX
>>673
カーネルサンダースかw
676login:Penguin:2008/03/17(月) 23:58:03 ID:Rzp2mBZf
>>674
667ですが使えました。
あろがとうございました。
677login:Penguin:2008/03/17(月) 23:58:28 ID:Rzp2mBZf
ありがとうございました!
678login:Penguin:2008/03/18(火) 00:45:47 ID:pdz2c3Ck
KFCか
679login:Penguin:2008/03/18(火) 23:52:30 ID:pdz2c3Ck
24時間で誤差1ミリsec以内に
時間を調節したいんだけど
NTPだけじゃどうにもならん

こうゆうときどうするの?
680login:Penguin:2008/03/18(火) 23:55:57 ID:owXiyD5i
>>679
KFCか、あきらめるんじゃないか?
681login:Penguin:2008/03/19(水) 00:00:57 ID:mZKM+MPD
GPSから受信するのがいいんじゃないか?
682login:Penguin:2008/03/19(水) 00:34:49 ID:jmy0fpSq
受信機からシリアルで送ってもらうと、1msくらい余裕でぶれそうな
気がするでよ。
システムクロックをTCXOで作ればどうにかなりますかねえ。

そもそも何でそこまでの精度が必要なのか気になりますな。
683login:Penguin:2008/03/19(水) 01:52:51 ID:Dy7hJrHZ
>>679
さすがに1日1秒もずれねーよなー

っていう前提の下に、1分に1回時刻合わせする
684login:Penguin:2008/03/19(水) 01:59:47 ID:hI6xFIVz
で、肝心のNTPサーバが他人様の物で、毎分の御アクセス
ありがとうございます。というメールとともにアク禁にされると。
685login:Penguin:2008/03/21(金) 10:51:26 ID:GPURSs20
puttyなターミナルから入った最近のLinuxで、ncursesw使ってutf-8を表示しようとしたのだけど、
mvprintw(1, 0, "※"); mvprintw(1, 1, " "); mvprintw(1, 2, "※"); mvprintw(1, 1, "☆");
なら期待どおり ※☆※ になるのに、
mvprintw(1, 0, "※"); mvprintw(1, 1, " "); mvprintw(1, 2, "※"); mvprintw(1, 1, "あ");
と最後の☆を変えただけで ※あ に表示が崩れるのは、どこに原因があるのでしょうか?
686login:Penguin:2008/03/21(金) 23:04:14 ID:08/5PZeA
IMEの入力モードを変換するAPIってあるんでしょうか?
687login:Penguin:2008/03/26(水) 01:52:22 ID:cX9Hm6ZW
Linuxで各スレッドが何回Mutexかけて
失敗したとか統計情報ってどこにあるの?
688login:Penguin:2008/03/26(水) 21:37:02 ID:3c6tutxx
>>687
はっはっは
無いよ
689login:Penguin:2008/03/27(木) 02:27:08 ID:PiHD4Bq/
ねーのか
腐ってるんだな本当に
windowsがやっぱ最強だな
690login:Penguin:2008/03/27(木) 23:02:19 ID:vcJKwHhP
WindowsはMutexかけ損なった統計があるのか
スゴイな。どうやったら取れるんだい?
691login:Penguin:2008/03/28(金) 11:01:02 ID:HvPMQUTZ
イベントログじゃね?




ところで、質問です。
iconvの使い方、サンプルコードがあれば、教えてください。

やりたいことは
>SJIS 文字列と UTF8 文字列を相互に変換する
ことです
692login:Penguin:2008/03/28(金) 13:32:01 ID:i9tqqt3j
iconv -f SJIS -t UTF-8
iconv -t SJIS -f UTF-8
693login:Penguin:2008/03/28(金) 15:51:47 ID:HvPMQUTZ
ありがとうございます。
プログラムから使う場合も教えてくださいorz
694login:Penguin:2008/03/28(金) 15:56:36 ID:s6QtoqP9
system()
695login:Penguin:2008/03/28(金) 17:40:02 ID:5TgcLqfx
シェルスクリプトからそのまま使え。

C99(UTF-8->SJIS)
char *instr = "文字列";
char *i = instr;
size_t i_len = strlen(i);
char out[256];
char *o = out;
size_t o_len = sizeof(out);
iconv_t cd = iconv_open("SJIS", "UTF-8");
int r = iconv(cd, &i, &i_len, &o, &o_len);
iconv_close(cd);

iconvの引数は、普通cd以外全部書き換わるから、元のアドレスはどっかに取っとけ。
696login:Penguin:2008/03/28(金) 18:06:35 ID:HvPMQUTZ
詳説サンクス>>695

ところで、現在の文字コードはどうやってとりますか?
環境変数のLANGですか?


ttp://q.hatena.ne.jp/1136691036
697login:Penguin:2008/03/28(金) 18:11:06 ID:s6QtoqP9
698login:Penguin:2008/03/28(金) 18:12:36 ID:HvPMQUTZ
当たり!

これが解決すれば、もう無問題なんですが。
699login:Penguin:2008/03/28(金) 18:13:37 ID:5TgcLqfx
700login:Penguin:2008/03/28(金) 18:14:29 ID:s6QtoqP9
>>698
なら板違い。
701login:Penguin:2008/03/28(金) 21:23:25 ID:s9WZiFsz
環境変数は
・プロセス毎に持つものである。
・どの環境変数をどう使うかは各プロセスに自由に任されている。OSは関知しない。
以上を踏まえて自分の目的が達成出来るか否か検討するよろし。
702login:Penguin:2008/03/31(月) 13:16:40 ID:psA1qVjr
黒タイツの暗黒シュシュトリアン
703login:Penguin:2008/04/07(月) 09:04:17 ID:tYWKZpa/
C/C++でHDDの使用量を取得したいのですがどのようにすればよいのでしょうか?
704login:Penguin:2008/04/07(月) 10:52:59 ID:YCXHql+C
dfのソースでも読んでみれば
705login:Penguin:2008/04/07(月) 10:54:35 ID:eTKSmIvZ
・kernel様にお伺いする。
・アプリからI/Oポートを直接操作する。
かな。
706login:Penguin:2008/04/07(月) 13:33:34 ID:HanpYLz1
>>703
statfsを呼べばおk
続きはmanで
707login:Penguin:2008/04/07(月) 16:33:38 ID:K3aneVtn
次期C++ではinline fortranが可能に!
http://pc11.2ch.net/test/read.cgi/tech/1207109859/

仕様肥大化しすぎ
708login:Penguin:2008/04/07(月) 18:02:15 ID:voVdLXCc
C++好きだけどいい加減自重してほしいとは思うな
709login:Penguin:2008/04/07(月) 20:42:31 ID:ky4RCRjO
正直ワロタ。もはやネタの域にきとるな。次はinline C#とかw
710login:Penguin:2008/04/08(火) 14:18:36 ID:xYr9GeEI
スレッド間の排他について質問です。

現在、共有資源の内容を変更(新規追加・内容変更・削除)を行うスレッドが1つと
共有資源の参照のみを行うスレッドがN(N>=2)の構成のアプリケーションを開発
しています。

今まで、どちらのスレッドもアクセスするには同じMutexによる排他を行っていた
のですが、どうにもスループットが出ないので、参照のみを行うスレッド間を並列に
動かせるようにするための方法を探していたところ、読み書きロック(正式には
何と呼ぶのでしょうか?)を発見しました。そこで、

変更するスレッド:変更前後で pthread_rwlock_wrlock() / pthread_rwlock_unlock()
参照するスレッド:参照前後で pthread_rwlock_rdlock() / pthread_rwlock_unlock()

というようにして試験したところ、劇的にスループットが向上しました。

これはこれで良かったんですが、となるとMutexの存在意義について疑問が出てきました。
今後、あらゆるMutexを使用している場面で、読み書きロックを使用し、Mutexの出番は
ない!と断言してしまって良いのでしょうか?
711login:Penguin:2008/04/08(火) 21:42:30 ID:VGg353lI
常識的に考えれば、この世にロックの手法がいくつもあるからには、
それぞれ向き不向きがあるのではないかと思うだろ。

常識で分からなければソースコード読んでみれ。pthread_rwlock_rdlock()で
やっている処理があらゆる場面で常に必要なのかどうか。
712login:Penguin:2008/04/08(火) 23:57:33 ID:weWUMveG
なんで参照でロックすんの?
713login:Penguin:2008/04/09(水) 00:19:39 ID:72MInrbZ
アトミック書き込み関数とかがPOSIXにはないから、かなー。
あとは、アレ、読み取り一貫性?そういうのを確保しないと、
これからはCPUコア数の増えていくからネ
714login:Penguin:2008/04/09(水) 01:48:54 ID:MHOGD1vi
つーと、具体的には変更スレッドと(参照スレッド)の同時発行時に参照スレッド側が遅延した場合とか考えてるのかな?
だとすると、Mutexを利用して変更スレッド側の優先度をごにょごにょしたりするつーことなの?
715login:Penguin:2008/04/09(水) 12:36:11 ID:oZETFFXK
カーネル2.4の環境で、共有メモリを使用したプロセス間通信を行っているのですが、
プロセスが停止(終了ではなく一時停止)します。
 ・AとBの2プロセスが動作しています。
 ・AはBへメールを送信(msgsnd)します。
 ・Bはメールを受信するとTCP/IP接続されたサーバに情報を送信し、
  送信したことをAプロセスへメールで通知します。
 
これを繰り返していると、たまにBプロセスの関数途中でAプロセス側へCPUが
スイッチされそのままBプロセスへ制御が戻らなくなります。
(システムコール等でブロッキングされているわけではありません)

※メール送信時の共有メモリは、メール送信毎に作成し、受信側で破棄する作りです。
※今のところTCP/IP通信を行わないと発生しません。(ドライバは標準の物)
※一時停止したプロセスはコンソールへの入力等(H/W割り込み?)を行うと再開します。

このような現象にあった方はいないでしょうか?(長々とすみません)
716login:Penguin:2008/04/09(水) 12:56:09 ID:KQOYg6Em
送信側にディレイを入れてみるとか?
717715:2008/04/09(水) 15:05:40 ID:7C+zl+CD
すみません、情報が漏れていました。

AプロセスはBプロセスのTCP送信が終わるまで、次のメールは送信しません。
その為メールボックス一杯や、メモリ枯渇も無いはずです。
718login:Penguin:2008/04/09(水) 15:07:43 ID:KQOYg6Em
straceで調べてみるとか?
719login:Penguin:2008/04/09(水) 21:33:10 ID:miANdZt+
pthread_rwlock_wrlock()とか
遅いし使う価値ないじゃん
全部pthread_mutexの方が安全だし
720login:Penguin:2008/04/10(木) 17:20:05 ID:hC2NJA9B
時間について教えて頂けないでしょうか?

1) 時間の取得(文字でなくて数値)
2) 時間のローカルタイム化
3) 夏時間の演算(tm_isdstの使い方が答?)

を順番に行うコードもしくは関数を教えて頂けないでしょうか?
721720:2008/04/10(木) 17:30:23 ID:hC2NJA9B
>1) 時間の取得(文字でなくて数値)

については、gettimeofdayがあるみたいですね。
その後がよくわからなくてorz
722login:Penguin:2008/04/10(木) 17:33:38 ID:f9Jb/+FW
723720:2008/04/10(木) 18:06:20 ID:hC2NJA9B
>>722
有難う。
1のgettimeofdayについては、分りましたが。。。
724login:Penguin:2008/04/10(木) 18:09:09 ID:f9Jb/+FW
>>723
そのページしか観賞しないの?
725login:Penguin:2008/04/10(木) 18:23:14 ID:hC2NJA9B
分らないから聞いてるんですけど。

正直言って、 >>722 のリンクは書き込む前に読んでます。
726login:Penguin:2008/04/10(木) 18:24:02 ID:f9Jb/+FW
>>725
学生くん?
727login:Penguin:2008/04/10(木) 18:25:22 ID:hC2NJA9B
>>726

おまい、ウザさ極限。
消えてお願い。
728login:Penguin:2008/04/10(木) 18:26:26 ID:kK61Qe8m
729login:Penguin:2008/04/10(木) 18:26:36 ID:xKGUAbUV
時間と時刻の使いわけ
ものをたずねるときの態度

終わってるな
730login:Penguin:2008/04/10(木) 18:53:32 ID:hC2NJA9B
おまいら、クズだな。

こういう回答を待ってたんだよ : ttp://www.ne.jp/asahi/hishidama/home/tech/lang/date.html
731login:Penguin:2008/04/10(木) 18:56:49 ID:f9Jb/+FW
LINUXの固有の質問じゃないのに、聞く場所間違ってる。
だだのCの標準関数の使い方だろ?
732login:Penguin:2008/04/10(木) 19:31:12 ID:hC2NJA9B
>>731
おまいはクズなだけじゃなく、チ●カス野郎だな。

おまいの出したPOSIXのヘルプ読んでみろよ。
今は使うべきでないものから、BSD拡張まで書いてあるからwww
733login:Penguin:2008/04/10(木) 19:32:46 ID:f9Jb/+FW
職業プログラマ?
734login:Penguin:2008/04/10(木) 19:56:43 ID:kK61Qe8m
中学生か高校生でしょ。関わらない方がいいよ。
735login:Penguin:2008/04/10(木) 20:33:34 ID:qQFVgABP
>>720
time_t t=time();
puts(ctime(&t);
で出来るよ。夏時間は廃止されました。
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/ctime.3.html
736login:Penguin:2008/04/10(木) 21:28:17 ID:1AAfwdH6
低スキル職業プログラマでしょ。
で、誰かに知恵をつけてもらって必死でやり返そうとしてるんだろ。
737login:Penguin:2008/04/10(木) 23:15:29 ID:JcKcidtB
これは酷いわ
738login:Penguin:2008/04/11(金) 10:13:35 ID:Dl1bvkA3
>>735
>夏時間は廃止されました。

本当ですか???
本当ならどれだけうれしいか。



ところで、>>720 の演算を順番に行うコードも知りたいです。
739login:Penguin:2008/04/11(金) 11:48:41 ID:sYNmn6Lb
>>738
>>735がそのコードです。
740login:Penguin:2008/04/11(金) 12:29:22 ID:Dl1bvkA3
なるほどサンクス。

time(); ・・・UTC(もしくはGMT)
ctime()・・・ローカルタイム化+文字列化

ですか。
741login:Penguin:2008/04/12(土) 01:40:35 ID:aMk0av0+
ていうか、「ありがとう」は?
742login:Penguin:2008/04/12(土) 08:56:08 ID:GsTcWvnq
サンクスって書いてあるじゃん
743login:Penguin:2008/04/12(土) 09:17:33 ID:H1hJd2mx
以下のプログラム
fd = iconv_open("EUCJP", "SJIS");
iconv(fd, (char **)&inptr, (size_t*)$size, (char **)&outptr, (size_t*)$size);
iconv_close(fd);

Valgrind --leak-check=yes でチェックすると、iconv_open()で
 Invalid read size of 4
 Address xxxxxxx is 48 bytes inside a block of size 49 alloc'd

とエラーを出すんですがiconv()を使っていて問題を起こしてる方いませんか?
iconvの出力は正常なんですが
744login:Penguin:2008/04/12(土) 13:41:44 ID:2bOSym+8
iconvは危険だから使ってはいけない
745login:Penguin:2008/04/12(土) 13:45:36 ID:yzi8k0zU
時代は酢昆布
746login:Penguin:2008/04/12(土) 15:09:02 ID:H1hJd2mx
>>744
アプリを書き換えることにしました。ありがとうございます。

>>745
そうだったんですか?初めて知りました。もっと勉強します。
747login:Penguin:2008/04/12(土) 17:16:01 ID:zeB3ARgq
そのドル記号は何だw
748login:Penguin:2008/04/18(金) 04:34:40 ID:fBS7BtR5
ログ出力の際にファイルロックが必要かどうか実験していたのですが、
ちょっと不思議な現象に出くわしました。
以下のプログラムを100プロセス同時に実行すると、hoge.logの一部で「wwritten」と
なってしまう箇所があります。
fprintfでなくwrite(2)を使うと再現しないのでglibc(2.6.1)のせいだと思うのですが、
これはどういう原理なのでしょうか?
#include <sys/file.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
int i;
FILE* fp = NULL;
int fd;
int pid = getpid();
fp = fopen("hoge.log", "a");
if (!fp) {
exit(1);
}
fd = fileno(fp);
for (i=0; i<10000; i++) {
flock(fd, LOCK_EX);
fprintf(fp, "written by pid %d\n", pid);
flock(fd, LOCK_UN);
usleep(1000);
}
fclose(fp);
return 0;
}
749login:Penguin:2008/04/18(金) 06:27:36 ID:cYJ/Gams
>>748
flock(fd, LOCK_EX);
fprintf(fp, "written by pid %d\n", pid);
+ fflush(fp);
flock(fd, LOCK_UN);

まあglibcのせいと言えなくもないが…
750login:Penguin:2008/04/18(金) 07:27:29 ID:twxhbmPg
いや、「glibcのせい」と言ってはマズイじゃろ。「Cのせい」だよな。

つーか、この内容ならロックを取らずにアトミックに書き出せばええやん。
751748:2008/04/18(金) 13:21:14 ID:3NdGmVsA
fflushとはすっかり忘れていました。
ついでにお聞きしますが、ログ追記の定石というのはあるのでしょうか?
・ロックは不要か
・1行書くたびにfflushではパフォーマンスが気にならないか
・クラッシュしたときのためatexitでfcloseするべきか
とりあえずlog4cではflushもロックもしていないようでしたが。
752login:Penguin:2008/04/18(金) 17:28:29 ID:PjXu6NLk
要件による。
753login:Penguin:2008/04/18(金) 20:38:56 ID:5dGB6yjX
複数のプロセスからひとつのファイルに書き込むなら、
open(2)にO_APPENDをつけてファイルを開いておき、
write(2)で書き込むのが常道だろう。

ディスク表面への同期を行うべきか否かについては
ケースバイケースだな。
754login:Penguin:2008/04/18(金) 21:48:41 ID:BhtI3++S
こなあああああああああああああああああああああああああああ
755login:Penguin:2008/04/18(金) 22:22:47 ID:gtZqIZ8N
  / |  / ̄/__ / ̄ ̄/ __  / /    /_ 〃
 /  | /_/       _/     _/ /_/ /
                                  /\___/ヽ
    (.`ヽ(`> 、                      /''''''   ''''''::::::\
     `'<`ゝr'フ\                  +  |(●),   、(●)、.:| +
  ⊂コ二Lフ^´  ノ, /⌒)                   |  ,,,ノ(、_, )ヽ、,, .::::|
  ⊂l二L7_ / -ゝ-')´                 + |   `-=ニ=- ' .:::::::| +
       \_  、__,.イ\           +     \   `ニニ´  .:::/    +
        (T__ノ   Tヽ        , -r'⌒! ̄ `":::7ヽ.`- 、   ./|
         ヽ¬.   / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、 \ (  ./ヽ
          \l__,./       i l.ヽ! |   .| ::::::::::::::l ヽ   `7ー.、‐'´ |\-、
int main()
{
  char* str="Hello World\n";

  printf("Hello World\n");
  return 0;
}
756login:Penguin:2008/04/18(金) 22:48:41 ID:twxhbmPg
757login:Penguin:2008/04/19(土) 00:19:45 ID:764YM5Ap
>>756
apt-get install hello
758login:Penguin:2008/04/19(土) 01:01:26 ID:FPfrqFBy
用意したデータをそのままIPのペイロードとして(IPのヘッダだけをつけて)送り出したいのですが、
具体的な方法を教えていただけないでしょうか。

できるだけ自分でプログラムを書かず、
既存のものを利用して実現したいと思っています。
759login:Penguin:2008/04/19(土) 01:52:35 ID:764YM5Ap
>>758
libnet
760login:Penguin:2008/04/19(土) 02:08:23 ID:+tIgJ88f
>>755 elisp で書いてみて
761login:Penguin:2008/04/19(土) 09:33:24 ID:FPfrqFBy
>>759
ありがとうございます。
これから調べてみます。
762login:Penguin:2008/04/24(木) 13:01:17 ID:Eon8tTkZ
libcのprintfってスレッドセーフなん?
出力が混じるくらいは目をつぶるとして
763login:Penguin:2008/04/24(木) 13:17:50 ID:8jColJMw
これもしかして俺が作ったスレ?
違ったっけ?
764login:Penguin:2008/04/24(木) 14:41:36 ID:8jColJMw
なぁおまえら。
char* ch;
というような宣言があったとして、chはcharポインタ型と言って
しまっていいんかな?
765login:Penguin:2008/04/24(木) 14:44:23 ID:j6EvvzSE
キャラクター型ポインタ、略して きゃらぽ
766login:Penguin:2008/04/24(木) 14:52:04 ID:8jColJMw
>>765
だよなぁ。
ttp://slashdot.jp/developers/comments.pl?sid=395832&cid=1323420
ここら辺見ててちょっと疑問に思ったんだ。
きゃらぽか。
使わせてもらうぜ。
767login:Penguin:2008/04/24(木) 14:58:21 ID:uGjCjb2u
Cの宣言の解釈順に読むとchはpointer to char
chはcharへのポインター
768login:Penguin:2008/04/24(木) 23:11:14 ID:Py8lS3wT
>>762
ちゃんと見てないが考慮はしてるようだ@2.7
書く所で排他制御してりゃ混ざらんとは思うが。
769login:Penguin:2008/04/25(金) 12:46:43 ID:ZR+Ag5j0
何かのポインタ本読んだときに
ポインタは英語で読めってのは結構良かった
以来、>>767と同様、一度英語にしてから読んでいる
770login:Penguin:2008/04/26(土) 18:14:13 ID:VSA6Tw/p
俺は複雑な宣言だと、英語の訳し方があやしいから
cdeclコマンドを使って確認かな。

cdecl> explain char *(*(*hoge[10])())()
declare hoge as array 10 of pointer to function returning pointer to function returning pointer to char
771login:Penguin:2008/04/26(土) 18:43:45 ID:SnvFIl5v
right to leftの原則で自力で嫁
772login:Penguin:2008/05/01(木) 00:31:02 ID:scTgaskf
msgctlに必要な権限ってrootだけなんでしょうか?
773login:Penguin:2008/05/07(水) 19:15:08 ID:a19YHgic
>764へ
おまえ
読み方は、さておき
一般的に
char* ch;
ってコードがあったら何を連想する?
774login:Penguin:2008/05/07(水) 23:32:30 ID:cSvceTAy
スレッドの生成(pthread_create)を実施する関数のテストをしています。

スレッド生成が失敗した場合のケースをテストしたいんですが、意図的に
pthread_createを失敗させる方法が分かりません。

PTHREAD_THREADS_MAX をいじっても当然無意味(そもそも、コメントアウトされている)で、
/proc/sys/kernel/threads_max はマシン全体にわたるパラメータなので、
他の使用者(共通端末上で開発しています)に迷惑がかかってしまいます。

プロセス毎の生成可能スレッド数を動的にいじることができれば理想です。

どなたか、妙案をご存知の方いませんでしょうか?
775login:Penguin:2008/05/07(水) 23:58:46 ID:pHDw0dkU
>>774
ulimitコマンドとかどうよ
776login:Penguin:2008/05/08(木) 00:54:12 ID:Zr8j43HW
$ ulimit -u
32752
$ ulimit -u 3
3
$ ls
bash: fork: Resource temporarily unavailable
$ ulimit -u 32752
bash: ulimit: max user processes: cannot modify limit: Operation not permitted

ひエエエええええええええ
777login:Penguin:2008/05/08(木) 01:03:51 ID:y2WVcfdv
>>776
おいおいw
778login:Penguin:2008/05/08(木) 04:42:09 ID:jTb0scH/
これってどう直すんだw
execで置換もforkが前段に入るから無理?
779login:Penguin:2008/05/08(木) 07:40:35 ID:67SUhF1P
あきらめてログアウトすれ。

ちゃんとman page読んでから試せよ…
780login:Penguin:2008/05/09(金) 17:52:15 ID:NYmc9yfk
マソパゲ
781login:Penguin:2008/05/10(土) 14:29:04 ID:QmEn1LiA
dlopenや共有ライブラリのプロファイル情報を
取りたいのですがどうすればいいの?
普通に-pgでコンパイルしても

gmon.outにmain1個だけしか出てこないw
782login:Penguin:2008/05/10(土) 19:29:59 ID:s9qAIz4p
実験でゲームサーバーを構築したいのですが
クライアント側からのキー入力をTCP/IPプロトコルで、サーバーに送信する技術ってやっぱり
socketを用いるのが吉?
783login:Penguin:2008/05/10(土) 19:38:32 ID:iYMWpnHw
ソケット以外の何でTCP/IPするというのだろうか・・・
784login:Penguin:2008/05/10(土) 19:44:22 ID:s9qAIz4p
>>783
linuxや通信関係の実装は、一回もやったことが無いので、確認させてもらいマスタ
元々C++使いなので、Cはわかるのですが、linuxのプログラミングに関して
Cの情報は多いけど、C++の情報が少ないのが残念デツ
車輪の再発明はしたく無いので、C++のsocketのライブラリィーとか知っていたら教えてもらえマツカ
オナガイシマスエロイヒト
785login:Penguin:2008/05/10(土) 20:34:18 ID:/xnxdJoy
>>782
クライアント側が BSD socket インタフェース持ってるんだったらそれが吉
もっと便利なライブラリがあるんだったらそれを使う方が、おそらく、もっと吉
そうでなければ使ってる OS の流儀に従うしかねぇんじゃねぇの?
786782:2008/05/10(土) 20:52:57 ID:s9qAIz4p
>>785thx
何となくですが、輪郭が見えてきました
WindowsのクライアントはMFCの中に多分berkley socket関連のライブラリがあると思うので
それを使います、問題はlinuxでの実装になります、いろんなシステムコールが準備されているみたいですが
早速つまづいています(^^;
dstSocket = accept(srcSocket, (struct sockaddr *) &dstAddr, &dstAddrSize);
accept()システムコールでこんなエラーが出ます
error: invalid conversion from \342\200\230int*\342\200\231 to \342\200\231 socklen_t\342\200\231
型変換が違うとコンパイラは言ってると思うのですが、引数の型は
accept(int,(struct sockaddr *) arg1, arg2);
なので正しいと思うのですが・・・・・?
787login:Penguin:2008/05/10(土) 21:06:13 ID:i6s1t4ei
>>786
こっちの方がいいと思うよ

ネットワークプログラミング相談室 Port21
http://pc11.2ch.net/test/read.cgi/tech/1204287577/
788login:Penguin:2008/05/10(土) 21:09:29 ID:fPB8nF+C
型がおかしいって言われてるのにどの型を使ってるか書かないのは釣りなのか?
789782:2008/05/10(土) 21:15:38 ID:s9qAIz4p
>>787
>>788
thx
ネットワークプログラミング相談室 Port21
http://pc11.2ch.net/test/read.cgi/tech/1204287577/
へ移動します
790login:Penguin:2008/05/22(木) 14:41:47 ID:NBp9AMHO
すみませぬ。

規則性を持って空のファイルを作る場合にCPUやメモリに負荷を
あまり掛けないで作る方法ありますか?

gccと標準的なシステムコールでお願いします。

open文で作ってますが、ファイルI/Oは、結構な仕事
なので、少しでも軽くしたいです。

規則はN文字のaaa(N=3)というファイルを作成
aab aac aad
aba 

zaa        ..  zzz
のように作ります。
規則性は、あまり関係ないですけど。
結構な大量ファイルを作成する必要があります。
791login:Penguin:2008/05/22(木) 14:50:27 ID:WyDCfVht
すみませぬ。

LUNAXにプログラムにおいて
20という数字をターミナルに入力したら、
それを読み取り、30という数字を表示する
プログラムの作り方がわからない為、教えて頂けませんか??
792login:Penguin:2008/05/22(木) 14:51:55 ID:It4hntbe
日本語でおk
793login:Penguin:2008/05/22(木) 15:02:39 ID:K3H4Ah9R
read; echo 30
794login:Penguin:2008/05/22(木) 15:05:22 ID:K3H4Ah9R
795login:Penguin:2008/05/22(木) 15:34:55 ID:gmG2tmnb
>>790
open/creat呼び出しはどうにもならんだろう。
FS側でジャーナリング止めるとか…
796login:Penguin:2008/05/22(木) 16:09:36 ID:cM6TBq1G
>>791
突っ込み所満載だから誰も突っ込んでないけど、LUNAXって何だよ・・・
797login:Penguin:2008/05/22(木) 22:32:21 ID:azKjZoxE
>>795
この場合、ext3のジャーナリングがオーバーヘッドとして比重が相当に
大きくなってそうですな。
798login:Penguin:2008/05/23(金) 00:22:04 ID:xL+nAK0I
メモリ上にあるデータのmd5sumを取得(計算)したいんですが、
GNU coreutilsのmd5sum.cから貰ってくる以外に簡単な方法は
無いでしょうか。
799login:Penguin:2008/05/23(金) 00:45:45 ID:nmi3RI3q
>>798
RFC1321のAppendixを丸写しする
800login:Penguin:2008/05/24(土) 01:18:02 ID:QlwIdcZn
カーネルが持ってるのをどうにか持ってくる。
801login:Penguin:2008/05/24(土) 01:27:20 ID:QlwIdcZn
Cryptographic APIってユーザーランドから使う方法ないんだっけ?
802login:Penguin:2008/05/24(土) 13:30:43 ID:jv/eFsuY
パイプでmd5sumに流し込めば?
803login:Penguin:2008/05/24(土) 14:15:42 ID:AYrBRDvb
正直、LinuxよりLunaxの方がかっこいいと思った
804login:Penguin:2008/05/24(土) 17:32:54 ID:8/0PspEJ
>>798
やったことねーけど、そういうライブラリがあるんじゃね?
805login:Penguin:2008/05/26(月) 15:21:05 ID:fXE9sIkN
opensslが入ってるなら、EVP_md5
806790:2008/05/28(水) 14:15:25 ID:7atgnQdI
すみません。

open以外に空ファイルを作る、CPUやメモリに負荷を掛けない
方法ありますか?
807あいちゃん:2008/05/28(水) 14:44:30 ID:u23B6L4S
どうにかしてプラッタに刻む
808login:Penguin:2008/05/28(水) 21:51:43 ID:hyFpgWYw
ドライブに負荷を掛けにくい方法ならある
cpuとメモリの負荷を減らしDMA転送も出来る。
が、負荷を かけない ってのは無理
809login:Penguin:2008/05/28(水) 22:21:06 ID:6Rl9Qb5b
>>806
システムコールを使いたくないなら、次のようにするしかないんじゃないかな?
1. ext3ドライバのソースを読んで空ファイルの作り方を調べる。
2. 直接HDDを操作して空ファイルを大量発生させるプログラムを作る
810login:Penguin:2008/05/28(水) 22:37:58 ID:tp55Dea8
あらかじめファイルが格納された状態のファイルシステムのイメージを用意して、
raw I/Oなりddなりでビットマップやinode領域等を書き込めば軽いだろ。

ファイルシステムを破壊するけどなw
811login:Penguin:2008/05/28(水) 23:36:20 ID:7atgnQdI
>>809
システムコールがだめってわけじゃないけど
touchやcpのソース(coreutil)とか調べて負荷が低いのを探してた。
ext3のソースは未だ調べてない。調べて見る。

>>808
はい、より負荷を掛けない方法を模索してます。

>>810
考えてたけど、排他がマンドクセーと思ったので、未だやってないっす
812798:2008/05/29(木) 02:30:49 ID:rITSsBYp
>>799-805
皆さんありがとうございます。
返事が遅れたことをお詫びします。

>>805さんのレスを見て、opensslを調べたところ
http://www.openssl.org/docs/crypto/md5.html
ここにMD5()という「まさに」な関数があって、
無事動きました。

色々知恵を絞っていただき、本当にありがとうございました。
813login:Penguin:2008/06/03(火) 14:19:26 ID:KXye7tRy
>>811
superblockいじっちゃいなよ。
814login:Penguin:2008/06/16(月) 22:07:27 ID:hghHQ/gK
write()でファイルに書き込んだあと
close()しても、すぐにはディスクには同期されていなくて、
タイムラグがあるそうなのですが、

close()した直後に別のプログラムから同じファイルを
open()してread()しようとしたら、どうなるのでしょうか?
その前にwriteした内容はちゃんと読み込まれるのでしょうか?
815login:Penguin:2008/06/16(月) 22:47:57 ID:B5/Uz4Q9
>>814
ちゃんと読み込まれる。バッファ統合されているから。

バッファ統合前の、昔のUnixではその点の保証がなかったが、
いまどきのUnix系OSはみんな統合されている。
816login:Penguin:2008/06/19(木) 00:29:34 ID:DwSvGKMg
ダーティーなデータの読み取りって昔は出来なかったの?
817login:Penguin:2008/06/19(木) 08:16:32 ID:B2b558bH
読み込みに使うキャッシュと書き込みで使うバッファとが別々だったから
ダーティ・ページもクリーン・ページもない。
818login:Penguin:2008/06/19(木) 14:22:38 ID:qCoUXFkj
おお。なるほど。知らなかった。
ページキャッシュとバッファキャッシュの統合とか言う前の段階か。
819login:Penguin:2008/06/30(月) 22:13:50 ID:j7UJtdfw
今日ソフトバンクから出た
デバドラの本最強すぎます
バイブルの域に入ります
820login:Penguin:2008/06/30(月) 22:18:50 ID:haG/mU8k
本の題名を詳しく
821login:Penguin:2008/06/30(月) 22:34:08 ID:j7UJtdfw
Linux デバイスドライバプログラミング
822login:Penguin:2008/07/01(火) 00:18:07 ID:jjjb16mB
>>821
目次見る限り、買う価値はありそうな気がするね。

までも、オライリーのドライバ本読んだら、カーネル解説書読んで
とっととソース読めって気もするが。
823login:Penguin:2008/07/01(火) 00:19:23 ID:jjjb16mB
といいつつ、Amazonで1click購入してしまた
824login:Penguin:2008/07/01(火) 00:22:32 ID:u/xfrfGj
>>822
でもソース読んでも
どうしても解らないことがる

mmapでユーザに領域明け渡してpollで
データ通知するのはいいんだけど
ユーザが書いてきたデータをkernelに通知
させるのがよく解らん

馬にはそんなこと1行も記述されていないし
825login:Penguin:2008/07/01(火) 00:33:15 ID:jjjb16mB
>>824
>ユーザが書いてきたデータをkernelに通知
>させるのがよく解らん

なんでもioctlしてしまえばOK
826login:Penguin:2008/07/01(火) 00:41:24 ID:u/xfrfGj
>>825
それ昔海外のBBSいったら
ふるぼっこにされたんだけど?
827login:Penguin:2008/07/01(火) 00:45:03 ID:jjjb16mB
>>826
ちらねっっっっっw
828login:Penguin:2008/07/01(火) 00:51:09 ID:jjjb16mB
もうさ、read, writeなくしちまって、open, close, ioctlだけでいい気がするのだけど
どうなんだろう。read, write, SIGIOとか、柔軟性ないし。最低、引数付きシグナル
は必要。
829login:Penguin:2008/07/01(火) 13:53:54 ID:JO6lQKf2
>>828
「ケンシロウ、ioctlはいいぞ」 という声が聞こえてきました。

read,writeは シェルからでも使えるようにするための種もみです。
830login:Penguin:2008/07/05(土) 11:02:49 ID:ouwQp4GB
スレッドチューニング用のプロファイラってありませんかね?
831login:Penguin:2008/07/05(土) 12:39:14 ID:GSKLgaHv
ありません
832login:Penguin:2008/07/05(土) 13:05:00 ID:ouwQp4GB
ズコー
833login:Penguin:2008/07/12(土) 13:14:06 ID:j34+JRvX
ubuntu 8.04-64bitで
bfd_minisymbol_to_symbol使うと問答無用で
segるんだけど何が原因なんすかね?
834login:Penguin:2008/07/16(水) 02:13:51 ID:5DOmporE
PC/AT機のI/Oポートを操作するような時に、outb_pと(普通の)outを使い分ける
条件ってどうなってるんでしょうか?
『I/O操作の遅いデバイス』と『I/O操作の早いデバイス』で使い分ければよいのでしょうか?
835login:Penguin:2008/07/16(水) 08:46:59 ID:IjcD5fhK
>>834
まあそんな感じでよろしいのではないかと。

コマンド書いてから動き始める間で時間かかりますなんてのは、
outb_pでつつくのがよいです。
836login:Penguin:2008/08/15(金) 23:35:52 ID:Dq4dt+Vm
質問させてください。

デバドラからアプリケーションにイベント通知したいときって
どういう風に実装するのがフツウなんでしょうか。

よろしくお願いしますm(_ _)m
837login:Penguin:2008/08/16(土) 08:28:54 ID:DPUB+UTd
>>836
アプリケーションがioctlを呼んで、その呼び先のデバイスドライバで
イベントが無かったら寝る。デバイスドライバでなんかイベントがあったら、
寝てるやつを起こす。って実装しときゃいいんじゃない?
838login:Penguin:2008/08/16(土) 09:07:36 ID:Xdxhavca
それならpollの方がよいのではないかと。

839login:Penguin:2008/08/16(土) 13:28:44 ID:KgWh2K36
read, write, pollいらねーんじゃね。ioctlでなんでもできるし、シグナルも不要。
840login:Penguin:2008/08/17(日) 04:15:45 ID:RamYD2Yk
>>837>>838>>839
レスありがとうございます!
システムコール内で待つのが常套手段みたいですね。

ところで、
教えていただいた情報をもとに調べていくうちに、
デバドライベントを複数同時待ちしたいという新たな欲望が生まれてしまいました。

pollを実装すれば要件をみたせるようなので、
今回はpollを使うことにします。

ありがとうございました!!
841login:Penguin:2008/08/22(金) 18:32:31 ID:r1fvTloB
LinuxのカーネルモジュールをC++で作りたいんだけど無理?
とりあえずCで書いた本体の.oとg++で吐いた.oをリンクして、モジュールをビルドしたら.koは出来るんだけど、シンボル解決出来ずinsmodに失敗した。
842login:Penguin:2008/08/22(金) 20:40:29 ID:EJDA2Uuj
C++ シグネチャでググレ
843login:Penguin:2008/08/24(日) 07:51:45 ID:T31yXksn
Tcl/Tk
最近のものは、けっこう強力になったし、スピードも上がってるようだが、
あまり流行ってないのか?
Linux, FreeBSD, MacOS X, Windowsと、殆んど同じコードが使えて便利なようなのだが…
844login:Penguin:2008/08/24(日) 13:24:24 ID:WgO6gp39
>>843
gtk+やwxWidgetsと比較してどうなの?

興味がわいたのでTkだけ使ってみたいのだけど
おすすめ解説ページとかあったら教えてください。

特に画面遷移とかC/C++との連携方法とか・・・
845login:Penguin:2008/08/24(日) 13:36:45 ID:s1lwltE0
tkはともかく、tclを使ってる所なんてここ何年も見たこともない
846login:Penguin:2008/08/24(日) 15:41:43 ID:IEvm07Rz
EDA関係ではまだ多いんじゃないの?
847login:Penguin:2008/08/24(日) 18:03:42 ID:n5RJcPI7
淘汰されたのに昔に戻してくれるなよ
848login:Penguin:2008/08/25(月) 08:28:43 ID:LUi0Re9e
日経からムック『すばりわかる!Tcl/Tk』出ないかなあ。
『ゼロから学ぶgtk+』でもいい。
849login:Penguin:2008/08/25(月) 23:41:00 ID:/KPpX7xT
>>845
ネットワーク業界ではテストツールを書くのにがんがん使われている。
850login:Penguin:2008/08/26(火) 01:48:59 ID:QgHqFXA9
Tcl/Tkの日本語情報があまりにも少なすぎる。
851login:Penguin:2008/08/26(火) 07:48:19 ID:B+1DI1fl
>>850
確かに、Tcl/Tkの情報が少ないよね、そこそこ使われてるような気がするんだけど。
>>844 さんが言ってる c/c++ /Tk の情報は、殆んど皆無だもんね。
最近、山森さんがチョッピリ書いてるのはあるけども…
ttp://journal.mycom.co.jp/column/helloworld/013/index.html
852login:Penguin:2008/09/03(水) 13:10:00 ID:nxPN9M20
gtkmm使ってこんなの作ってみました

http://www.vector.co.jp/soft/winnt/game/se461309.html

これからQt4・gtkmmのどちらを使っていくか迷ってるんですが

QTはGUIからネットワーク・サウンドなど様々な分野に対応したライブラリ
gtkmmはGUIのみのライブラリだがウィジェットの生成・消去の処理はこちらのほうが早い

処理時間は優先させたいがいろんな機能が統合されている魅力も捨てがたい...
どちらを使うべきでしょうか
853login:Penguin:2008/09/04(木) 02:03:16 ID:yL02FzIi
両方
854login:Penguin:2008/09/04(木) 19:25:48 ID:kxSlZy+f
Qt4を少しだけ触ってみたんですがgtkmmにくらべ,ウィジェットの生成・消去にかかる処理時間が2〜3倍
さらに2D描画の処理時間が1.5〜2倍くらいかかりました.
これって仕様?
855login:Penguin:2008/09/04(木) 21:34:53 ID:5liswdaD
gtkmmはCだろうけど、QtはC++だからしょうがないんじゃね。
GUIみたいなやつだと
856login:Penguin:2008/09/04(木) 22:58:04 ID:kxSlZy+f
gtkmmはGTK+のC++バインディングですよ
それにC++とC言語でも処理時間はさしてかわらないはず
Debian使ってGNOMEデスクトップでQT4インストールしてやってるんですが
同じ言語で処理速度に2〜3倍の差が出るとかありえるんでしょうか
857login:Penguin:2008/09/04(木) 23:35:03 ID:5liswdaD
速度差が気になるなら、プロファイル取って原因調べるなり
なんなりする。調査結果貼り付けたら、喜ぶ人もいる。


俺は、めんどいから調べないがw
858login:Penguin:2008/09/04(木) 23:55:48 ID:kxSlZy+f
とりあえず処理速度gtkmm>Qt4と結論づけて
Qt5出るまでgtkmm使うことにします
GTK枯れてるのであまり使う気は引けるのですが...

本屋なんかでQt4の本とかはよく見かけるのに
GTKの本なんかは絶版しててAmazonで全国5冊とかそんなのばかり...
859login:Penguin:2008/09/05(金) 00:20:36 ID:yJYLbrdu
gnome上でQTは時間かかるでしょ、逆も真なり。
860login:Penguin:2008/09/05(金) 00:24:58 ID:uvh8bhuM
Qtは時間かかんないよ。
KDEアプリはDCOPサーバ立ち上げるのに時間かかるけど。
GTKもKDE上で特に時間がかかるような事はない。
861login:Penguin:2008/09/05(金) 02:26:52 ID:B9KHGXh3
ここは一つGASで…
862login:Penguin:2008/09/05(金) 02:52:39 ID:vjYSyV9j
軽くてシンプルなツールキットを自分で作っちゃえば?
863login:Penguin:2008/09/09(火) 23:40:53 ID:YosnVhH1
Xtで十分
864login:Penguin:2008/09/10(水) 19:47:10 ID:8bQJIIgG
GAMBASってやっぱ人気ねーのな。
865login:Penguin:2008/09/24(水) 15:06:15 ID:OEqJ5D76
wxWidgets、機能面は申し分ないけど
小さいアプリでもなんかもっさりするな。
866login:Penguin:2008/09/26(金) 20:03:57 ID:w561g39v
selectでファイルを監視していて、selectが帰る度に前回からの経過時間を取得したい
ntpdが動いていてる環境なんですけど、10ms精度で取得する方法はありませんか?
867login:Penguin:2008/09/26(金) 20:23:15 ID:QxRUqolh
>>866
clock_gettime(3) でいいんじゃね?
868login:Penguin:2008/09/26(金) 21:20:06 ID:w561g39v
>>867
ありがとうございます。
869login:Penguin:2008/09/28(日) 11:24:17 ID:p6UHPaTd
GTKのプログラミングの本ってどれおぬぬめデスか_?
870login:Penguin:2008/09/28(日) 15:20:53 ID:xpXgBPBo
いくつもないんだし
全部読め
871login:Penguin:2008/09/28(日) 15:44:21 ID:p6UHPaTd
どれあるんすか?
872login:Penguin:2008/09/28(日) 15:57:29 ID:CeAQTKB8
873login:Penguin:2008/09/28(日) 16:02:40 ID:p6UHPaTd
やっぱり勉強やめた
英語無理
874login:Penguin:2008/09/28(日) 16:05:02 ID:IgG6wSSR
875login:Penguin:2008/10/15(水) 14:17:07 ID:eYzFomnv
ttp://www.gnome.gr.jp/docs/gtk+-1.2.x-refs/gtk/index.html
ttp://www.gnome.gr.jp/docs/gtk+-2.0.x-tut/gtk-tut.html
ttp://www.gnome.gr.jp/docs/gtk+-1.2.x-refs/gdk/index.html

日本語のGTKマニュアルだとこれくらい
ぐぐればほかにもあるかもしれんけど

市販の本もあるらしいが入手はほぼ不可

学びやすさではQtか...
ただモジュールが膨大なせいか
GTKより仕様が複雑
876login:Penguin:2008/10/16(木) 11:54:52 ID:0uol2Q5Z
>>873
1年前は俺もそう思ってたよ。
ところが仕事でやるようになって、
解らなくても必死に調べてたらそのうち解るようになってきた。
結論としては解らなくても続けていればなんとかなる。
ただ一人じゃつらいから仲間は必要だな。
Qtなら多少説明できるが、GTK+は未経験。
でもQtはWindowsと考え方はたいして変わらなかった。
やりたい人がいるんなら、プログラミングサークルwでもつくる?
877login:Penguin:2008/10/18(土) 12:10:00 ID:KYR9fNBQ
>>876
とりあえず、飽きるのに耐えつつ
昨日届いたFoundations of GTK+ Development
を読んでいる。

878login:Penguin:2008/10/20(月) 03:11:00 ID:kADyao8b
>>877
879login:Penguin:2008/10/25(土) 02:32:58 ID:qRPC/mBT
結局wine入れてWin32API使うのが楽
すなわちWindows使うのが一番楽
880login:Penguin:2008/10/25(土) 06:24:50 ID:wJ7HZZJn
素のWin32APIは…

VCLがお手軽で良かったのう。
881login:Penguin:2008/10/25(土) 19:40:27 ID:IwBjdQTZ
つまりLinuxデスクトップがWineで構成されているディストリビューションがリリースされればいいのか...
882login:Penguin:2008/10/28(火) 00:43:16 ID:AhwFq0EP
Lindows再び みたいなのがそのうち出るんだろうね。
Mono2.0では.NETアプリケーションの45%は修正なしでいくらしい。
883login:Penguin:2008/10/28(火) 00:48:56 ID:r3ekrN11
VBやDelphiみたいなのが出ればWindowsのサンデープログラマーが移行しやすいと思うね。
あとは開発ドキュメントの日本語化。
884login:Penguin:2008/10/28(火) 08:01:42 ID:DXJuo0mx
もう過去に失敗してるけどね
まあ何度でもトライすればいいとは思うが
885login:Penguin:2008/10/28(火) 21:59:26 ID:Vec0SHgw
perl python rubyあたりのスクリプト言語と適当なGUIライブラリで
十分だろ。趣味なら。
886login:Penguin:2008/10/28(火) 22:24:22 ID:Z2Jy68nM
なんでGTKでのGUI開発って
宗教的儀式作法としか考えられんほど糞なコーディング強いるの?
887login:Penguin:2008/10/28(火) 22:33:00 ID:HPnu13IO
例えば?
888login:Penguin:2008/10/28(火) 22:47:25 ID:Z2Jy68nM
イベントとかもう嫌だ
.NETみたいに書きたい
889login:Penguin:2008/10/28(火) 23:55:06 ID:YSiYH+k9
慣れの問題
どのGUIにも特有の決まりごとはあるもの
やってることはそれほどかわらない
890login:Penguin:2008/10/29(水) 00:35:27 ID:opRkkW0G
あのなあ、そりゃGTKしかないなら慣れるしかないだろうけど、
実際には「学ばない」という選択肢があるから慣れようがないんだよ。
他とやってることがそれほど変わらないのなら、
簡単で合理的な「他」を選ぶだろうがバカめ。
891login:Penguin:2008/10/29(水) 00:58:37 ID:G+yEkmy9
というかGTKはOSXかWindowsどっちかと
機能と仕様統一すべきだろ

GTKって生産性低いんだよ
892login:Penguin:2008/10/29(水) 00:59:10 ID:x4cHnl0M
馬鹿宣言乙
893login:Penguin:2008/10/29(水) 01:01:25 ID:G+yEkmy9
そもそも.NETやCocoaだと5分で作れるようなことが
まずソースコード読もうとかアホな次元から始まる
GTKは本当にありえない
894login:Penguin:2008/10/29(水) 03:13:54 ID:9ojY5vRp
>>893
それは言える
895login:Penguin:2008/10/29(水) 03:19:59 ID:F4yRCIO7
実例をあげろ
896login:Penguin:2008/10/29(水) 03:20:53 ID:XWWc8vU1
ラーメンタイマーはもういいからw
897login:Penguin:2008/10/29(水) 03:28:18 ID:CAHVmB1i
ワロタ
898login:Penguin:2008/10/29(水) 08:02:53 ID:KASNM7qI
まあ.NETやCocoaは実質有料だからなあ。
899login:Penguin:2008/10/29(水) 11:53:31 ID:aVUXk04O
GTKやってる奴って趣味で(好きで)やってんだろうからどうでもいいが
俺専用なら、俺はまずGUIなんて作らんし大抵はスクリプトで終了だよ
ゲームならどのみちGTKとか使わんだろ

>>898
一般人はWindowsがプレインストールされているPCを買うし
NETフレームワークもVisual Studio 2008EEもタダで手に入って
ポトペタRADが利用できるわけで
900login:Penguin:2008/10/29(水) 12:44:13 ID:wwkxgPCl
主流のXPには.NET入ってねぇだろ。
あれはWindowsUpdateのカスタムで「除外」するのが
企業なんかじゃあたりまえだぞ。
セキュリティ部門が運用で面倒くさくなるかならな。

VSが失速しタダみたいになったのは.NETになって
非.NETアプリの需要がまだあるのに非.NETアプリを
簡単に作るのが面倒になったらからだと思う。
.NETアプリっーつのは、ユーザーに別個に.NETのインストールを
指示する必要があるから面倒なんだよ。
(ATIのビデオドライバなんかがそうなっているね)

一般企業的価値感では.NETを利用するなら
旧開発環境で非.NETにするか、どうしてもフレームワークを使うなら
javaにいくと思う。

周辺機器なんかの付属ソフトなんかもたいがいそうだよね。
901login:Penguin:2008/10/29(水) 12:50:14 ID:aVUXk04O
>>900
> 主流のXPには.NET入ってねぇだろ。
> あれはWindowsUpdateのカスタムで「除外」するのが
> 企業なんかじゃあたりまえだぞ。
> セキュリティ部門が運用で面倒くさくなるかならな。

デフォで入ってなくともタダで入れられるし。
Linuxデスクトップなんて趣味丸出しの世界と
業務で使ってて好きに弄れない端末(非開発機)を同列に論じてるのも意味不明だな。
902login:Penguin:2008/10/29(水) 12:53:13 ID:aVUXk04O
一応確認するが、
まさか.NETランタイムも入れられない環境に
LinuxやWin用GTKランタイムは入れられるとか寝言言ってんじゃねえよな?w

知らんようだから教えてやるが、
.NETは思いっきり仕事でも使われてるよ
903login:Penguin:2008/10/29(水) 13:02:27 ID:wwkxgPCl
なんでそんなに必死なの?
ひょっとして仕事で.NET関係の開発してる?
そりゃ大変だよね〜、VISTAがもっと流行ればいいね〜
(ちょっと無理っぽいが、計算狂ったんだろうなぁとは思う)
904login:Penguin:2008/10/29(水) 13:28:52 ID:aVUXk04O
>>903
お前さんが知ってる「世間」が狭すぎる上に主張が意味不明だから
突っ込んだだけだが

「Javaならいい」ってのも意味不明だしな
JREはノーカウントかw
905login:Penguin:2008/10/29(水) 17:27:23 ID:ULIKBty7
>>904
必死さはよく伝わったよ。一応903とは違う者なので
906login:Penguin:2008/10/29(水) 21:51:45 ID:lCe1Ktii
こういう場合、何一つ具体的な反論をしていないほうが分が悪い
どちらだかは言うまでもないな?
907login:Penguin:2008/10/29(水) 22:36:46 ID:G+yEkmy9
GTK用のRADツールでまともなもん
無いの?なんで作らないの?
リーナス馬鹿だから?
犯罪者排出したから?
908login:Penguin:2008/10/29(水) 23:40:02 ID:QzNzlvxl
リーナス関係ないじゃん。
と釣られてみる。
909login:Penguin:2008/10/30(木) 02:01:37 ID:4ykSSJQZ
あんなお絵かきツールいらんw

どんなGUIにもたいていついてるけどw
できるソース最悪だしまともなもの作れるとは到底思えない

特にあの子供のお絵かき的な操作はやっててむなしくなってくるw

間に合わせではなくいいものを作りたいなら
普通にコーディングしたほうがいい
910login:Penguin:2008/10/31(金) 00:04:39 ID:rGwLY2DF
RADは簡単なGUIをすばやく、簡単に作るもので

時間がないのでGUIを手早く・・・
GUIはあまり重要でないので適当に・・・

という場合に(仕方なく)使用するツール

にも関わらずこれら以外の場合で喜々として使用したいような方は
RPGツ○ールえっくすぴーでもいじってた方が効率的

なにも理解してないゆとりの時代の子供が
無理にプログラマーの真似事をする必要はありません
911login:Penguin:2008/10/31(金) 12:21:08 ID:JojG8LTd
>>910
> なにも理解してないゆとりの時代の子供が
> 無理にプログラマーの真似事をする必要はありません

吹いたw
VBにしろAccessにしろ.NETにしろDelphiにしろNetBeansにしろ
思いっきり業務で使われている/いたわけだが……
パッケージソフトにしろ、ダイアログを作成するのにリソースエディタの一つも
使わないというのはあり得ない
912login:Penguin:2008/10/31(金) 13:27:24 ID:zn3zHzQB
GTKはかなり昔に少しやっただけなので黙っていたのだが、
gladeとRuby/GTKあたりでやるのが楽だと思うよ。
913login:Penguin:2008/10/31(金) 16:31:34 ID:NTOX3eWD
ちなみに

grade
http://usamimi.info/~linux/d/up/up0282.png

gradeでgtkmmとか面倒ならrubyとかpythonてのが成道な気がしないでもない。


どうしてもVBだろう、どうしてもVBっぽいのじゃなきゃダメって厨な君にはこんなのもある。
FPC+Lazarus
http://usamimi.info/~linux/d/up/up0283.png
Delphiクローンだな。(pascal)

残念ながらVBはない。当然だが。
素直におとなしくeclipse+javaでもやってて欲しい。

914login:Penguin:2008/10/31(金) 19:48:07 ID:BAdSZswW
つーかLinuxのGUIはWindowsかOSX遵守しろよ
違法コピーOSのくせに
915login:Penguin:2008/10/31(金) 20:23:23 ID:BAGbDsrX
イミフ
916login:Penguin:2008/10/31(金) 21:04:14 ID:SNC34/H2
アプリケーション間でショートカットキーくらいは統一してほしいところ
あとウィンドウマネージャはクリップボードの機能をもっと強化すべき
WindowsやMacOSはそういうところが尋常じゃなくしっかりしてる
917login:Penguin:2008/10/31(金) 21:52:10 ID:NTOX3eWD
すでに文句言うために文句言ってるというw
918login:Penguin:2008/10/31(金) 22:33:57 ID:rGwLY2DF
>>911
パッケージで堂々とRADとはサスガですね?
919login:Penguin:2008/11/01(土) 00:07:00 ID:7aGvguWk
>>918
Windows自身VC++で作られてるわけだが
920login:Penguin:2008/11/01(土) 01:48:23 ID:DmScaBwx
それがなにか?
OS自身をRADで作るとでも?
私にはあなたがソリューション系の仕事を転々としてきた派遣の人に見えます
知ったかぶりは後々弱目になるので気をつけたほうがいいですよ?
921login:Penguin:2008/11/01(土) 02:05:41 ID:jzmmikh+
>>920
弱いものいじめはやめろ!
922login:Penguin:2008/11/01(土) 02:34:34 ID:7aGvguWk
話が変な具合にねじれてるな
VC++をRADと定義するかどうかのズレか?

普通はVC++をRADとは言わんと思うが
知っての通りVC++にはリソースエディタがついており、
コードの自動生成やクラスライブラリとの連携機能があり、
VC++は事実上Windowsの標準開発環境として広く利用されているわけだが
パッケージならむしろVC++を用いていないもののほうが稀だろ

無論kernelコードなら「リソースエディタ」なんぞは関係ない話だが
「Windows」というOSに関しては、GUIデスクトップ環境まで含まれるからな
923login:Penguin:2008/11/01(土) 05:55:37 ID:dSD0sBZG
知らないものは当然のように馬鹿にする無教養な人間ってだけだろ。
カーネルとシェルとemacsとgdbだけで生きてる人間にGUIなんぞわからんよ。
デスクトップだけで生きてる人間がttyをわからんのと同じでね。
924login:Penguin:2008/11/01(土) 09:54:59 ID:DePXsKwk
すまんがここはプログラミングスレ。コードで語ってくれ。
グチやウンチク語りたいなら他所いってくれ。
925login:Penguin:2008/11/01(土) 10:16:34 ID:iBkJuz12
つまりLinuxではGUIプログラミングは無理なので
やめた方がいいということです
926login:Penguin:2008/11/01(土) 11:39:50 ID:DePXsKwk
そうそう君には無理だ、諦めてね。
927login:Penguin:2008/11/01(土) 12:53:44 ID:iBkJuz12
Linuxのプログラミングって宗教だよね
草加みたいできもい
928login:Penguin:2008/11/01(土) 14:25:18 ID:xlEaV2TM
草加草加
929login:Penguin:2008/11/02(日) 12:58:36 ID:5tkGURGg
結局wine入れてWin32API使うのが楽
すなわちWindows使うのが一番楽
930login:Penguin:2008/11/02(日) 13:46:53 ID:P/zWxESO
やっぱり
GUIエディタが弱いのと、
ライブラリごとにドキュメントが分散してることが
linuxプログラミングの2大障害かなあ。

その点、.NETとかだと
普段linuxやってて知識0でもさくさくコーディングできる。
自分と逆の立場の人は大変だろうな。
931login:Penguin:2008/11/02(日) 13:53:32 ID:dpUTivXt
ドキュメント整備だけはマイクロソフトえらいと思うわ。
932login:Penguin:2008/11/02(日) 15:16:18 ID:OBdbkshV
やはりいいものはいいと認めるべきだな

ドキュメント整備からはじめよう
933login:Penguin:2008/11/02(日) 15:21:46 ID:J1BSkb6i
real programmerにドキュメントは必要ない。
ドキュメントが必要なプログラマはプログラマでは無い。
従って、M$プラットフォームを利用するプログラマはプログラマとは言えない。
Linuxプログラマこそが真のプログラマであり、唯一のプログラマである。
934login:Penguin:2008/11/02(日) 15:30:37 ID:tR7tCxCk
かんじーざいぼーさー
かんじーざいぼーさー
かんじーざいぼーさー
935login:Penguin:2008/11/02(日) 16:45:59 ID:X530WAxg
real programmerにドキュメントは必要ない。
ドキュメントが必要なプログラマはプログラマでは無い。
従って、M$プラットフォームを利用するプログラマはプログラマとは言えない。
Linuxプログラマこそが真のプログラマであり、唯一のプログラマである。

こういうアホがいるのはLinuxだけなんだよなぁ
936login:Penguin:2008/11/02(日) 17:18:20 ID:8LwLmm0R
まだまだ、趣味でのんびり付き合える人向けだよね、Linuxは。
937login:Penguin:2008/11/02(日) 19:36:54 ID:Je+DXZ+s
>>935
この手の話題は、犬糞が出来る前から海胆糞業界では、
「ソース読め」で終了してたわけだが…
938login:Penguin:2008/11/02(日) 21:34:26 ID:OBdbkshV
>>937
今はそんなアホなこと言う人もだいぶ減ったよね
だいたいソースコードは成果物であって仕様では無いんだが
そこんとこわかって無い人多すぎ
939login:Penguin:2008/11/02(日) 23:52:34 ID:Brx7IrCw
ソースがドキュメントってのはハッカーの自虐ジョークなんだが
真に受ける馬鹿な素人が多すぎるんだよな
Unixはベル研の昔からman整備してるしGNUもinfoがある
難を言えば、分かってる人間にしか読みこなせないあたりかね

MSも事情はかわらんが、オンラインの検索能力がゴミなのと、
日本誤訳が問題を更に悪化させてるのがな・・ないよりマシだが
940login:Penguin:2008/11/03(月) 15:33:01 ID:Bwqrem+6
>>939
ここ数年のMSのドキュメントへの力の入れようはパネェよマジで。
「○○の翻訳おかしいぞ直せゴルァ」とメールすると翌週には直ってる。
941login:Penguin:2008/11/03(月) 20:26:32 ID:nh8VBUM4
>>938
仕様を仕様として確定するまではソースコードが正義だよ
IETFあたりでは、いまだに………
942login:Penguin:2008/11/06(木) 01:14:42 ID:k9eRLDW1
>>941
IETFは「動かない仕様なんて意味が無い」と現実の動作を重んじてるだけで、
ただの一言も「ソースが仕様です。ソース嫁」なんてレベル低いことは言ってない。
943login:Penguin:2008/11/07(金) 07:26:54 ID:tYBykSxo
仕様は先に決めるものだからなぁ。
ソースが仕様通りになっていないとバグになるわけなんだが、
ソースが仕様書だというと、おかしなことになる。
944login:Penguin:2008/11/07(金) 08:03:44 ID:StSVOsMY
出来ちゃったバイナリが仕様書はよくあること
945login:Penguin:2008/11/07(金) 09:24:45 ID:vBU34iHj
オープンソースの醍醐味
946login:Penguin:2008/11/12(水) 01:14:39 ID:DnV7yufO
ptyにつながってるstdinて書き込んでも怒られんのですね。
しばらく悩んだ。

947login:Penguin:2008/11/15(土) 16:35:52 ID:FFNCNb8R
>>934
なんじゃそりゃ?
948login:Penguin:2008/11/15(土) 16:59:06 ID:szPmAnhd
他にも「…従ってGDIプリンタは真のプリンタとは呼べず、PSプリンターのみが
唯一のプリンターである」とか「…従ってWinモデムは真のモデムとは呼べず…」
とか色んなバージョンがあったよね。
もちろんジョークじゃなくて本気なんだよw
949login:Penguin:2008/11/15(土) 21:45:43 ID:2pWVzft0
次は、「ソフトウェア無線」は真の無線デバイスとは呼べず・・・か?
行き着くところはFPGAは真のチップとは呼べず、だな。
950login:Penguin:2008/11/16(日) 06:07:00 ID:m6bvpmnq
>>949
Linuxで動かない者の代表格といえば、最近では動画関連かね。
LDPの文書で真の動画とかあったっけ?
951login:Penguin:2008/11/22(土) 02:02:03 ID:L+j6rchq
LinuxでVRAM直書きってできますでしょうか?
952login:Penguin:2008/11/22(土) 02:16:52 ID:Dm8VSHjY
できる
953login:Penguin:2008/11/22(土) 18:46:07 ID:5NRRI6OS
Xwindowで特定のアプリケーションだけキーリピートOFFにできますか?
954login:Penguin:2008/11/25(火) 00:51:06 ID:pyfm2t6k
わざわざLinuxのプログラミングスレまできて
布教活動を行うWindows信者たちをみたとき
955login:Penguin:2008/11/25(火) 02:08:39 ID:z6DtBm5L
Windows信者はわざわざ布教する必要ないだろ。
あれだけ広まってるのだから。
956login:Penguin:2008/11/25(火) 03:41:10 ID:pyfm2t6k
それでもどこでもWindows賛美したがるのが
Windows信者の習性らしい

Linux板まできてなにやってんだか
957login:Penguin:2008/11/25(火) 13:24:22 ID:rXHSEQCo
きっとM$ピラミッドのいちばん最下層で飯を食いつないでいる人でしょう。
彼らは必死なのです。分かって大目に見て上げましょう。
958login:Penguin:2008/11/25(火) 19:10:39 ID:J51efRsC
スレ違い
959login:Penguin:2008/11/27(木) 14:02:47 ID:0oeBKDV7
史的唯物論によれば、歴史的事実からして、ルンペンプロレタリアートは反革命的利害の持ち主だったらしいです。
なぜなら彼らはブルジョアジーの利益のおこぼれにあずかって生き延びてきた社会階層であったからだそうです。
960login:Penguin:2008/11/27(木) 14:04:31 ID:0oeBKDV7
ごめん。ブルジョアジーではなくその時代の支配階層(その当時は貴族階層?)の間違いでした。
961login:Penguin:2008/12/02(火) 00:37:26 ID:aevZSzey
ラージページってどうやってとればいいのですか?
Kernel2.6.22ぐらいなら対応してそうだと思うのですが
うーん
962login:Penguin:2008/12/02(火) 18:40:37 ID:/6v5cHNF
>>961
ラージページってヒュージページのことなのか?
そうなら、Documentation/vm/hugetlbpage.txt に設定からサンプルコードまで載ってるけど。
963login:Penguin:2008/12/09(火) 05:10:44 ID:7UYxA9g8
>>930
Eclipseはけっこういいよ。
964login:Penguin:2008/12/09(火) 07:02:20 ID:oUX7FPuZ
Eclipse非常に良いんだが環境によっては重くて・・・
誰かC++かなんかで書き直してくれないかな。。
965login:Penguin:2008/12/09(火) 13:33:26 ID:zBRlTPr4
Objective-Cで
966login:Penguin:2008/12/22(月) 00:10:53 ID:e1d/p3MW
unix domain socketで接続している相手のプロセスIDって取得できますか?
967login:Penguin:2008/12/25(木) 10:49:51 ID:tWCimKvF
>>966
回りくどいことすれば取得できる
968login:Penguin:2008/12/25(木) 11:37:27 ID:JoYrC3EW
ルートキット一発!
969966:2008/12/25(木) 16:50:01 ID:YLVoSR1u
>>967
lsofみたいに/proc見るとか?
便利な関数はないと考えてよいでしょうか。
970login:Penguin:2008/12/26(金) 01:21:46 ID:J6rqLCsP
>>969
はい
971login:Penguin:2009/01/04(日) 15:13:41 ID:+pbzPaSy
デバッガのようなものを作っています。
ブレークポイントでブレークしたときに、デバッギプロセスのバックトレースを
取りたいのですが、これはどうやったら実現できるのでしょうか?
同一プロセスならば、glibのbacktrace関数で取得できることは分かっているのですが、
他プロセスに対応させる方法がわかりません。
972login:Penguin:2009/01/04(日) 15:40:40 ID:kuD2oS5t
>>971
GETREGSでspもらってきて、頑張ってそこからたぐる。
973login:Penguin:2009/01/04(日) 16:05:25 ID:+pbzPaSy
>>972
マジすか。フレームポインターの有無などを考えると、
逆汗が必須になるような気がするのですが、そういうものなのですか。
974login:Penguin:2009/01/04(日) 17:38:36 ID:XjZJ56+3
>>973
フレームポインタ云々より、逆汗無しのデバッガって…
975login:Penguin:2009/01/05(月) 02:47:28 ID:6ZtmY4qM
>>973
そういうのです。
デバッグ情報が使えればそこにスタックフレームの使われ方が書いてあるけど、
ダメなら力業で解析するしかない。

gdbにもそういうコードが入ってる。
976login:Penguin:2009/01/10(土) 09:29:17 ID:8wtLHioo
ユーザ空間で使えるspinlockって無いですか?
977login:Penguin:2009/01/13(火) 13:31:25 ID:UMzYTyeo
自分でCAS(x86ならcmpxchg等)で実装する
978login:Penguin:2009/01/15(木) 00:43:11 ID:DlEX9Fn8
>>977
自由に使えるデータ構造もないし
全部自分で実装かぁ
979login:Penguin:2009/01/15(木) 11:32:08 ID:/IjFWv27
単純なspinlockだけならint値と操作関数だけでよくね?
まあpthread_spin_lock使えば?
980login:Penguin:2009/01/16(金) 02:11:25 ID:ePdupyOX
そういえばpthread_rwlockってmutexより良い感じ?
981login:Penguin:2009/03/22(日) 18:14:29 ID:kBVQblM0
pthread のマイナー関数群って
枯れてない関数の代表格じゃね?

わざわざ使う気になれん。
982login:Penguin:2009/03/22(日) 19:35:48 ID:J2y+GBOy
>>977
カーネル内でspinlock, unlockするモジュール
作って、デバイスファイル経由で呼び出せばOK
983login:Penguin
pthread_rwlockまんせー