人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linux上でのC言語でのタイマー処理では
どのようなやり方があるのでしょうか?
一定時間の間隔で処理を行いたい場合です。

cron,sleepとかあるようですが一応分単位での
実行となります。


●質問者: root00
●カテゴリ:コンピュータ
✍キーワード:C言語 Linux タイマー 単位
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● くまっぷす
●23ポイント

http://www.mech.tohoku-gakuin.ac.jp/rde/contents/linux/control/l...

sleep(), usleep()などを使います。


2 ● tadashi0805
●23ポイント

分単位でよくて、一回の処理が1コマンドの起動、処理後、終了というパターンなら、cronでできます。

実行するユーザーでログインして、

crontab -e

と打って、viの画面になったら、crontab用のフォーマットで起動時刻の設定を行います。

http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html

設定に従って、指定したコマンドが指定時刻に起動されます。


3 ● kurukuru-neko
●22ポイント

1.POSIX Timer

timer_create ( librt )

http://www.ops.dti.ne.jp/~allergy/thread/thread.html#timer

2. カーネルタイマー

http://homepage3.nifty.com/rio_i/lab/driver24/003timer.html


4 ● takfjt
●22ポイント

Linuxで一定時間ごとの処理をしたい場合は,

仰るとおり,cronやsleepを利用します.



cronはC言語のタイマ処理ではなく,

Linuxである時間ごとにプログラムを起動するための仕組みですが,

分単位程度でしたら利用に耐えられます.

難点としては,プログラムそのものは毎時間ごとに

新規に立ち上がるため,データを継続して処理することができません.

(たとえば,何回目の実行か数えるカウンタ変数など)

そのため,継続して処理したいデータは毎回ファイルへ書き出すなどの

処理が必要となります.

また,cronでは標準出力の表示(printfによる表示など)は

メールで送られてきます.つまり,即時に見ることができないわけです.

これに関連して,cronはプログラムのバグなどでは止まらないため,

プログラムがおかしなことをしているとそれを延々とやりつづけてしまいます.

一旦エラーが起こると,膨大なエラーメールが届きます.

cronによる方法は,あるコンピュータでずっと動かし続けるのには

非常に適した方法です.



sleepはコマンドのsleepとC言語の関数であるsleepがあります.



コマンドのsleepの場合,作ったプログラムを一定時間ごとに

起動し続けるシェルスクリプトを別に作ることになるでしょう.

よって,C言語とは別にシェルスクリプトの書き方を覚える必要があります.

C言語のプログラムの起動方法自体はcronの場合とよく似ていて,

その時間ごとに新規にプログラムが起動します.

ただし,cronの場合と異なり,printfによる出力などはすぐに見ることができ,

エラーが起こった場合も停止します.

ただし,いろいろな要員により,あるコンピュータでずっと動かしておきたい場合,

この方法はあまりよくありません.



最後にC言語の関数のsleepによる場合ですが,

これは上2つと異なり,作ったプログラムがずっと起動し続けることになります.

よって,ファイルへの書き出しなどの工夫をせずにデータを

処理し続けることができます.

基本的にはただ終了しないプログラムなのでprintfの表示なども

普通のC言語のプログラムと同様に見ることができます.

この方法の場合,あるコンピュータでずっと動作させたいばあい,

「デーモンプログラム」という特別なプログラムの作り方を

勉強する必要があるでしょう.



C言語によるプログラム例



int main()

{

いろいろな前処理;

for (;;) {

/* 無限ループ */

毎分くりかえしたい処理;

sleep(1);

}

return 0;

}

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ