[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/25 17:52 / Filesize : 218 KB / Number-of Response : 981
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Linuxプログラミング



1 名前:login:Penguin [2005/06/06(月) 11:19:09 ID:uXQqRJXF]
Linux のプログラミングに関する話題です

2 名前:login:Penguin mailto:sage [2005/06/06(月) 12:21:43 ID:NKTmDljP]
2get!!!

3 名前:login:Penguin mailto:sage [2005/06/06(月) 19:56:41 ID:mvKKcD2C]
誘導
pc8.2ch.net/test/read.cgi/tech/1116908090/

4 名前:login:Penguin [2005/06/07(火) 08:48:19 ID:f398JVV/]
Linux固有のプログラミングに関する話題です

5 名前:login:Penguin [2005/06/07(火) 09:19:02 ID:VuICZeLP]
たとえば?
デバイスドライバの書き方とか使い方とか?

6 名前:login:Penguin [2005/06/07(火) 09:30:46 ID:M5U+LdKE]















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

















7 名前:login:Penguin mailto:sage [2005/06/07(火) 09:38:37 ID:6uaL4exB]
デバイスドライバの書き方については何でも聞いてください。
答えますよ。

8 名前:login:Penguin mailto:sage [2005/06/07(火) 09:44:40 ID:fMg6lYHe]
以後はこちらへ。

ディバイスドライバをハックしよう!
pc8.2ch.net/test/read.cgi/linux/1012407270/

9 名前:login:Penguin [2005/06/07(火) 09:52:21 ID:VuICZeLP]
Linux特有のならいいんじゃね?
SIGCHLDを無効にして子供を自立させるのとかは
BSDでは推奨されてないとか、どういうことじゃね?

10 名前:login:Penguin [2005/06/08(水) 03:27:42 ID:efnI26oW]
面白い話題なのでage
これでLinuxにバリバリ依存したプログラミングの話が出来る




11 名前:login:Penguin mailto:sage [2005/06/08(水) 07:03:28 ID:Ur9S3tqL]
立て逃げか( ゚д゚)、ペッ

12 名前:login:Penguin mailto:sage [2005/06/08(水) 08:37:32 ID:CK8/wpZS]
このスレッドを見てGCCを入れました!
大変参考になりました
1さんありがとうございました

13 名前:login:Penguin mailto:sage [2005/06/08(水) 09:06:33 ID:0ismwF6c]
>>1が立て逃げしたため














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

















14 名前:login:Penguin mailto:sage [2005/06/08(水) 20:28:33 ID:tz0qcZo4]
cとかc++やればいいのでしょか>?

15 名前:login:Penguin mailto:sage [2005/06/09(木) 11:02:31 ID:fhCNZsTJ]
じゃ、ポータブルでないLinux特有の拡張があったらあげてみろや。

16 名前:login:Penguin mailto:sage [2005/06/13(月) 02:37:33 ID:88uqHA46]
>>9とか

17 名前:login:Penguin [2005/06/13(月) 23:13:42 ID:2SiW65Xk]
Qt絡みの話は駄目?

18 名前:login:Penguin [2005/06/16(木) 11:59:14 ID:jlxEkJcI]
QtはLinuxだけじゃないから、それだけじゃダメだけど
QtでのLinux特有のトラブルの話ならOKじゃね?

19 名前:login:Penguin mailto:sage [2005/06/16(木) 13:36:13 ID:tbzXPG2W]
redhat v4 のサポート内容があまりにもへぼい件について


20 名前:login:Penguin mailto:sage [2005/06/16(木) 19:49:00 ID:fK4dnybR]
プログラミングの学習環境をLinuxで整えるにはどのようなソフトをインストールするべきでしょうか?
そしてどのように学習していけばよいでしょうか?
www.alpha.co.jp/knoppix/edu/
KNOPPIX Eduを使用したほうが早いでしょうか?

>>19さんはお金を払って買っているんですか?リッチマンですね。



21 名前:login:Penguin mailto:sage [2005/06/16(木) 22:31:40 ID:W6FD7eJl]
>>20

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

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

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

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





22 名前:login:Penguin mailto:sage [2005/06/16(木) 23:31:10 ID:NC8ArA+p]
>>21
vimじゃダメ?

23 名前:login:Penguin mailto:sage [2005/06/16(木) 23:38:02 ID:0PTeLZap]
>>22
どうぞお好みで。

24 名前:login:Penguin [2005/06/17(金) 09:46:40 ID:UHDWQlXq]
・MSの評判を長年擁護してきた「マンチキン」
web.archive.org/web/20000817184119/http://www.zdnet.co.jp/magazine/pcmag/9910/jd991025.html
・MSのマーケティング戦略 「FUD」
www.yamdas.org/column/technique/fuddefj.html
・MSが“組織票”で投票操作
web.archive.org/web/20020112151956/http://www.zdnet.co.jp/news/0201/10/e_vote.html
・MS「Halo伝道師」を勧誘
cocoa.2ch.net/famicom/kako/1019/10192/1019242704.html
・MS「マックからの乗り換え体験談」は社員でした
hotwired.goo.ne.jp/news/news/business/story/20021016101.html
・MS、ブラジル政府高官のFUD批判に名誉毀損の訴え
www.itmedia.co.jp/enterprise/articles/0406/30/news040.html
・世界最大の某ソフト会社がお得意とするマーケティング手法。
www.geocities.co.jp/SiliconValley/5634/t82A6_0009.html

25 名前:login:Penguin mailto:sage [2005/06/17(金) 11:49:29 ID:r2abT8Mn]
>>20
初心者ならemacsだろう。
開発用エディタとしては最高。
あらゆる言語のソースモードをもっている。
ソースの先頭に//-*- C++ -*-などと書いてくれたまえ。
それでそのソースを開くときにその言語のモードになる。

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

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



26 名前:20 mailto:sage [2005/06/17(金) 20:32:36 ID:u6tR/1dR]
>>21 >>25 レスありがとうございました。
インスコしたてでLinux素人ですが、少しずつ勉強して行きます。
いまはperlを勉強していますが、いずれは他のプログラム言語を学習したいと思っています。

27 名前:login:Penguin mailto:sage [2005/06/25(土) 21:47:43 ID:7teW5l8w]
Rubyってどうよ。

28 名前:login:Penguin [2005/06/29(水) 02:04:11 ID:rSbPN/4/]
デバイスドライバを作るときのテストに便利なアレ

29 名前:login:Penguin [2005/07/01(金) 09:29:19 ID:xK97s0Sp]
valgrindでメモリリークをチェックできるけど、
CGIプログラムでPATH_INFOとかPOSTを使うプログラムはどうチェックしたら良いの?
他のプログラム同様にやるだけで良いんだろうか。

30 名前:login:Penguin mailto:sage [2005/07/03(日) 02:34:03 ID:387/J7NO]
CGIなら多少漏れたところで、プロセスが直ぐ死ぬから問題ないと思うがどうか。



31 名前:login:Penguin [2005/07/03(日) 03:00:50 ID:vXmg8Wmb]
    _  ∩
  ( ゚∀゚)彡 ioperm ! ioperm !
  (  ⊂彡
   |   | 
   し ⌒J

32 名前:login:Penguin mailto:sage [2005/07/03(日) 22:51:27 ID:W/EOLQ8V]
LSBの話でもするか?

33 名前:login:Penguin mailto:sage [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.
という行があったら問題無しと見てよい?

34 名前:login:Penguin mailto:sage [2005/07/06(水) 23:53:51 ID:h/w15dTK]
ところでみんな何作ってるんだ?

35 名前:login:Penguin [2005/07/15(金) 10:43:45 ID:r+pZSuw6]
kmallocって非プリエンプティブなの?

36 名前:login:Penguin mailto:sage [2005/07/15(金) 19:48:06 ID:I6G9y00D]
モードによって変わったような気がするが。
いつもGFP_ATOMICしか使わんので忘れた。


37 名前:login:Penguin [2005/07/16(土) 16:07:15 ID:YgyQE1T3]
>>36
アトミックとカーネルってなにがどう違うんだっけ?

38 名前:38 [2005/07/16(土) 23:47:35 ID:iwY4tsZJ]
プログラミングをしていて、分からない点があるんですけど、
どなたか分かる人はいますか〜〜??☆ お願いします(><)


39 名前:login:Penguin mailto:sage [2005/07/16(土) 23:49:36 ID:DO52ZlNO]
>>38
エスパー募集か?


40 名前:40 [2005/07/16(土) 23:58:35 ID:iwY4tsZJ]
どうしてもわからないプログラムがあって><



41 名前:login:Penguin mailto:sage [2005/07/17(日) 01:47:35 ID:kE3RiDzU]
>>40
私も同様の状態で悩んでいます。
もし解決されましたら、解決方法等書き込んでいただけると助かります。

42 名前:login:Penguin [2005/07/17(日) 16:39:06 ID:q+4CFsL5]
nasmの良い参考書ないでしょうか?

43 名前:login:Penguin mailto:sage [2005/07/17(日) 17:09:00 ID:D1ufqS5v]
Linuxでnasmを使う、なんて特殊状況のための良い参考書なんて
なさそうに思いますが、ためしに
www.data-house.co.jp/book/8293.html
これでも買ってみたらどうでしょう?

44 名前:_ mailto:sage [2005/07/18(月) 23:50:12 ID:5+oTT0Qf]
書籍では「Linuxプログラミング」 SOFTBANKがお薦めです。一通り学べます。


45 名前:_ mailto:sage [2005/07/18(月) 23:50:54 ID:5+oTT0Qf]
あ、nasmの書籍ではないです。流れ見てなかった..orz

46 名前:login:Penguin mailto:sage [2005/07/23(土) 13:47:30 ID:/ZYw3AUV]
LinuxでCプログラミングの情報は、書籍やネットにもたくさんあるが、
LinuxとC++だと初心者用の情報がすくない。ヘルプ。

47 名前:login:Penguin mailto:sage [2005/07/23(土) 21:15:58 ID:qedpaVuk]
>>46
「Linux で C プログラミングの情報」 + 「C++言語の情報」
ではダメなのかしら?


48 名前:login:Penguin mailto:sage [2005/07/28(木) 03:00:09 ID:6pUiA/iF]
nasmといえばZSNESだろ、これのためにあるアセンブラじゃないの?
LinuxでならGAS使えば?

49 名前:login:Penguin [2005/07/31(日) 00:04:18 ID:0Amwd3lA]
UNIXドメインソケットを使ったサンプルプログラムある?

50 名前:login:Penguin mailto:sage [2005/07/31(日) 00:15:31 ID:3VxENWOd]
ちょっと借りますね
ーーーーーーーーーーーー
ねこのえさ
サランラップ
麦茶




51 名前:login:Penguin [2005/07/31(日) 00:46:47 ID:0Amwd3lA]
socket関数でAF_UNIXを指定すればUNIXドメインソケットが出来ますが
bind方法がわかりません

52 名前:login:Penguin mailto:sage [2005/07/31(日) 00:50:39 ID:0Amwd3lA]
www.linux.or.jp/JM/html/LDP_man-pages/man7/unix.7.html
を読んでbind方法がわかりました
ありがとうございました

53 名前:login:Penguin mailto:sage [2005/07/31(日) 04:54:18 ID:uaSMumyk]
お礼を言われる筋子は素敵な筋子だ

54 名前:login:Penguin [2005/08/05(金) 00:10:27 ID:6XxyXksp]
今のユーザで、selectで待てるソケット数の上限を
調べる方法を教えてください

55 名前:login:Penguin mailto:sage [2005/08/05(金) 19:37:37 ID:0CoAsVSB]
FD_SETSIZEとか、RLIMIT_NOFILEとか?

56 名前:login:Penguin mailto:sage [2005/08/05(金) 19:57:55 ID:6XxyXksp]
>>55
FD_SETSIZEで判明しました。
デフォルトは1024なんすね。

でもなんでtime.hで定義してるんだろ・・・不思議

57 名前:login:Penguin mailto:sage [2005/08/06(土) 14:29:00 ID:zxTk5X4j]
Visual Basic for Linuxありませんか?

58 名前:login:Penguin [2005/08/06(土) 16:56:51 ID:EsGlAU9q]
現在進行形の開発者たちはどうやってGUI作ってるの?
ボタンの位置とかをピクセル単位で座標をソースに書いてるの?

59 名前:login:Penguin mailto:sage [2005/08/06(土) 19:40:34 ID:QVH3pN5M]
>58
GladeとかQT Designerとか。

60 名前:login:Penguin mailto:sage [2005/08/07(日) 01:56:10 ID:3ozY2FRR]
gtkならvboxとかのコンテナを使えば座標指定は特に必要ないよ



61 名前:login:Penguin [2005/10/06(木) 18:12:55 ID:ZATs0tPd]
まぁ、聞いてくれよ。
daemon プログラムの作成手法を調べようと思いググっていたら、とある海外のサイトに
掲示板形式の 「 教えてくれ 」−「 教えてやる 」 ページが見つかった。

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

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

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

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

お蔭で、ほんの10分で自作デーモンが出来上がったよ。
いやー、俺すげービックリした。 最近のプログラミングって、つくづく簡単になったな。


62 名前:login:Penguin mailto:sage [2005/10/06(木) 20:41:58 ID:Hi1ptbaM]
fghack

63 名前:login:Penguin mailto:sage [2005/10/07(金) 01:47:36 ID:SjqsnuRY]
>>61
デーモン化すること自体は、もともとたいした手間でもないけどな。
> 回答者:まず最初に fork() して 親プロセスは exit() して ・・・(以下、略)
の「以下、略」にいろいろ書いてあったんだろうけど、その中で必須なのは
setsid()することだけだろ? カレントディレクトリをルートに変更して(以下略)
までやったほうが行儀いいけどな。

制御端末から切り離さなきゃならないわけでもない、という話もある。
それを言うと、なにもやらなくていい、ということになるがw

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

>>62
今、調査中だが ・・・ 「 もっと簡単な方法があったつーことか? 」 な悪寒 ・・・


65 名前:login:Penguin [2005/10/08(土) 01:19:33 ID:cQUyfIlR]
>>64
おいおい。
そんな監視するだけのプログラムをデーモンにするこたねぇだろよ。
cronに任せて毎n分間隔で監視してきゃええじゃねぇかな?

あと、こんな感じでできるような気がする。
1.親プロセスを起動する。
2.親プロセスからforkして、その先で「外部機器の影響で落ちるプログラム」をexecする。
3.親プロセスは、子プロセスのsignalを受け取るようにする。(落ちたら。すかさず2をする。)
4.あとはすること無いと思うので、waitしてる。


66 名前:login:Penguin mailto:sage [2005/10/08(土) 01:48:38 ID:EUp0YkR6]
nohupでもぇぇじゃないか、ぇぇじゃないか

67 名前:login:Penguin [2005/10/08(土) 16:43:26 ID:QksVjeD+]
kinuxのディストリ別に、標準コマンドのソースコードが違いますが(ソースの中のヘッダファイルの名前が違ったり)
皆さんのプログラミングされてるOSは何ですか?

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

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

BSD系、Soraris、RHELは、

68 名前:login:Penguin mailto:sage [2005/10/08(土) 16:48:54 ID:QksVjeD+]
どうなのですかね? 板違いなので除きましたが・・・

RPM系
vine 理系の初学者に向いている。emacsも日本語。

69 名前:login:Penguin mailto:sage [2005/10/13(木) 21:35:12 ID:7X6OHKXJ]
>>61
daemon(3)はBSD 4.4由来のライブラリ関数で、1993年頃からあるよ。

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

探したらこんなの出てきた。こんなに高機能なものはいらないけど、自作
したものの保守が面倒なら、既にあるものを使っておくのがいいかも。
www.libslack.org/daemon/


70 名前:login:Penguin mailto:sage [2005/10/13(木) 22:19:33 ID:sLBZYW2l]
daemontools知らない?



71 名前:login:Penguin mailto:sage [2005/10/14(金) 11:03:10 ID:qfnLX5Yn]
>>70
知ってるよ
でも板違いじゃない?

72 名前:login:Penguin mailto:sage [2005/11/16(水) 10:22:29 ID:Bj7GCSe+]
Cでファイルの更新時間を変更するにはどうしたらいいでしょうか
system("touch hoge"); はちょっとダサいかなと思って

73 名前:login:Penguin mailto:sage [2005/11/16(水) 11:24:04 ID:2LwI+36C]
>>72
touchのソースを読もうと思わんのかい?

utime


74 名前:login: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関係を呼び出していました。
このやり方は、正しいやり方なのか、現状の抜け道みたいな物なのでしょうか?

75 名前:74 mailto:sage [2006/03/25(土) 20:42:13 ID:yDjJAEUK]
glibcをコンパイルするときに参照するカーネルのヘッダを新しくしたら
使えるようになりました。

76 名前:login:Penguin [2006/03/32(土) 22:30:19 ID:S101QXQ7]
ハードクロックをinb,outb使って読むデーモンを作るんだが、
なんでhwclock(1)が繰り返し読み出しを行っているか判らな
い。
知ってる人いますか?

77 名前:login:Penguin mailto:sage [2006/04/02(日) 01:39:30 ID:lgKbQ3Mw]
読んでいる間に時刻変わったら悲惨な事になるべ。


78 名前:login:Penguin [2006/04/29(土) 10:55:01 ID:VLPUOXfX]
FUSE ようのプログラムを作成しているのですがちょっと詰まっています。
プログラム側に独自の引数を渡すには普通どうやるんでしょうか。

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

fuse: invalid argument

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

どなたかアドバイスお願いします.

79 名前:login:Penguin mailto:sage [2006/05/27(土) 19:38:21 ID:9Jcfr6TV]
CentOS 4.3でプログラミングを勉強し始めたんですが、XWindowsのコンパイルがうまくいきません。
単純に
%g++ -lX11
ではだめなんでしょうか?
手元の本には、こうするということ以上に何も書いていないですし、ググってもわからなかったのでどなたかお助けください。お願いします

80 名前:login:Penguin mailto:sage [2006/05/27(土) 21:14:28 ID:B4V3D54O]
??
わけわかめ。
エラーさらせ。



81 名前:login:Penguin mailto:sage [2006/05/28(日) 00:57:22 ID:TVBnZUdH]
リンクするライブラリを書く位置には意味があるよ。

82 名前:login:Penguin [2006/09/07(木) 13:46:38 ID:Ps6xV3hc]
usleep(1)で実際に寝てた時間を計測したいんだけど
なんか簡単でそこそこ精度のいい法王ある?

83 名前:login:Penguin mailto:sage [2006/09/07(木) 13:55:20 ID:O+EIzNPQ]
環境依存でいいならRTC

84 名前:login:Penguin mailto:sage [2006/09/07(木) 21:35:17 ID:8QwKVwyX]
x86ならTSC見ればいいんでないかい。


85 名前:login:Penguin mailto:sage [2006/09/08(金) 04:13:14 ID:KhmQSVSr]
環境非依存なら普通にgettimeofday

TSCは
#include <asm/msr.h>
rdtsc
rdtscl
rdtscll
あたり


86 名前:login:Penguin [2006/11/26(日) 04:21:53 ID:2cZaftoe]
ルート権限で突っ走るプログラムを書いてるんだけど、
一般ユーザが投げるシグナル(なんでもいい)を受けたいのに
Operation not permitted って出て投げてもらうことができません。
どうしたらいいでしょうか

87 名前:login:Penguin mailto:sage [2006/11/26(日) 11:23:31 ID:SPqfyYuX]
一般ユーザが実行すると、実効ユーザをrootにしてシグナルを送るプログラムを書く

88 名前:login:Penguin [2006/12/08(金) 00:30:08 ID:c3V3Q9m7]
たとえばライブラリ hoge1.a と hoge2.a をリンクして hoge3.a
を作る方法を教えて。

89 名前:login:Penguin [2006/12/09(土) 01:47:55 ID:7wC+QgEB]
C/C++での2重起動防止について教えてください

90 名前:login:Penguin mailto:sage [2006/12/09(土) 02:33:35 ID:Nt4zOwfD]
どういう条件での話だか分からんが。
うっかりミス防止ってことなら、flock()でも使えばいいんでねえの?



91 名前:89 [2006/12/09(土) 02:52:03 ID:7wC+QgEB]
exeとかの2重起動防止だったんだけど。
flock()でいいんかな。よく知らないのでわかりません。
open()使うんだろうけど、
これって実行プログラム内でそのプログラムのファイルディスクリプタって得られるものなのかね

92 名前:login:Penguin [2006/12/09(土) 03:24:05 ID:vHGg2QAV]
適当なファイルでいいじゃん

93 名前:login:Penguin mailto:sage [2006/12/09(土) 03:32:08 ID:54k/0nQv]
ロックファイル使うとかプロセス名から判断するとか、あるいはDBUS使うとか。
ロックファイル使うやり方が一番簡単。後の二つは書いといてなんだが
よく知らんので、もしかしたら出来ないかもしれない。
実行ファイルそのものをflock()はやったことないな。
後、ディスクリプタはプロセスごとに持ってるものだし、
実行ファイルそのもののディスクリプタを得るにはargv[0]からopen()するしかないと思う。

94 名前:89 [2006/12/09(土) 03:32:38 ID:7wC+QgEB]
おまえ天才

95 名前:89 [2006/12/09(土) 03:34:06 ID:7wC+QgEB]
てきとうなファイルでやればいいとは気づかなかったよ

96 名前:login:Penguin mailto:sage [2006/12/09(土) 09:48:52 ID:Nt4zOwfD]
そう、適当なファイルでやる。
シグナルを送る際の便宜のために、自分のPIDを書いた hoge.pid みたいな
ファイルを作ることが良くあるが、そいつにロックかけるというのがありがち。

97 名前:89 [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;
}

だめな部分あったら教えてください。

98 名前:login:Penguin mailto:sage [2006/12/09(土) 23:35:00 ID:vHGg2QAV]
-1が帰ってくるところってみんな == -1 でやってる?
オレはなぜかしらんが < 0 でやることが多い。
いつからそうなったのか自分でもわからないが

99 名前:login:Penguin mailto:sage [2006/12/09(土) 23:51:28 ID:PZAeSbKs]
-1以外に負数がエラー番号として使われる関数がしばしばあるみたいだから、
全てのエラーに対して特定の処理する場合は<を使って、
-1のエラーのみ考慮する場合は==を使ってるよ。



と負数で-1以外のエラーを吐く関数を知らない俺がマジレス。

100 名前:login:Penguin mailto:sage [2006/12/10(日) 05:24:03 ID:eKPQDbb7]
>>97
実行ファイルが複数ある場合はその数だけ実行できるが
それで目的に合っているなら問題ない。



101 名前:login:Penguin [2006/12/20(水) 09:38:29 ID:wUoDfaxG]
sjisやらeucやらのマルチバイト系から
UTF-8やらUTF-16に対応させたいんだけど、linuxって
windowsみたいな、便利なAPIは用意されてるの?

やっぱり多言語化じゃ、windowsの圧勝かな、かな?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<218KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef