- C言語なら俺に聞け(入門編)Part 126
532 :デフォルトの名無しさん[]:2014/10/10(金) 22:53:01.23 ID:8D1iqFXW - ここで、いいのかちょっと不安だけど質問させてくれ。
Linuxで2つ以上のプログラムから同時に同じファイルに書込みしてるんだけど(一種のログファイルね)、一定時間ごとにそれをリネームしていきたいんだ。 「何時ごろのログなら○×のファイル見ればいいよね」を簡単にしたいので。 やってることはプログラムAとBとCの3つがあってAとBはfopen()してfprintf()で書いてfflush()してfclose()する。 Cはそれに加えて、シェルに"mv ファイル /mnt/usb/ファイル+日付"てな感じでmvコマンドを実行させてる。 セマフォつかって排他制御の処理してるつもりなんだけど、時々プログラムAとBがセグメンテーションフォルトで死ぬ。 知りたいのは 1)セマフォの排他制御ってプロセス違うと利かないの? もしそうならプロセス間の同期ってどう取るの? 調べた限りではセマフォでプロセス間の同期が取れるらしいんだけど・・・ 2)セグメンテーションフォルトでプロセスが死んだ時に「どこで死んだか?」を簡単に確認する方法ないの? 今はprintf()つかって延々とコンソールに出力させてるけど・・・死ななかったプロセスが吐くメッセージで流れちゃうんだ・・・ Linux初めてだし普段はお手軽C#だしでわからんことばかりで泣きそうだよ・・・
|