C++で次のようなソースを書こうと考えていますが、
全くに、具体的なやり方のイメージが出てこず、
アドバイスいただきたく思い、
質問させてもらうことにしました。
===========================
(A)
↓
(B) ある検索処理が実行される
↓
(C)
↓
(D)
↓
(E)
===========================
(B)がいくらか処理時間の要する内容なのですが、
(B)を実行している際に、
決められた一定の時間が経過した場合は、
進行中の(B)の処理を中断し、
(D)へ飛んでしまいたいと思っています。
(B)の処理が開始された段階で、
時間の計測も平行し実行され、
その経過時間が、
例えば10秒を超えてしまった段階で、
すぐに、(B)を中断し、
(D)に実行処理を移動させる感じです。
分からないだけに、
適切なキーワードが悪かったりするのか、
意図するページを検索することが出来ず、
質問させていただきます。
参考になるソースでも解説でも、
何でも結構ですので、
アドバイスいただけると、
大変ありがたい次第です。
開発環境はFedora9です。
どうぞ宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
Fedoraということはgccですね。
基本的な方法は2通り。
1. (B)内で、time(2)等利用して、時間を意識しつつループを行う。
2. シグナルを利用する
っていうことで、
おすすめは 1. 一般的には、alarm(2)が簡単ではないかなと。
あとは、マルチスレッドにして、select(2)と混ぜるなんて技もあるかもしれませんが、
いろいろあるので、まずはalarm()で、シグナルについて調べるところから
やるとよいと思います。
参考URL:http://www.linux.or.jp/JM/html/LDP_man-pages/man …
tsuduki999さん
ご回答いただきましてありがとうございました。
アドバイスいただいたとおりでして、
alarm()にて、
意図を満たせる感じでした。
ありがとうございました!
No.1
- 回答日時:
(A)とか(B)はスレッドですか、プロセスですか?
いずれにせよハンドルが違うだけですが、強制終了の方法が異なるのと、
スレッドを強制終了する場合、同一プロセスの動作が不安定になるという
危険があります。
プロセスが終わるかタイムアウトになるまで待つというのでしたら、
WaitForSingleObjectを使うのが一般的でしょうか。
http://msdn.microsoft.com/ja-jp/library/cc429427 …
nda23さん
ご回答いただきましてありがとうございました!
今回は、alarm()で対応してしまいましたが、
nda23さんの内容に関しても、
大変、参考になりました。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でログファイルにファイルパ...
-
c言語
-
大量のデータを読み込んで表示...
-
gccを行ってもexeファイルが生...
-
UART通信の取説で,left floati...
-
PC画面を録画するプログラムでd...
-
C言語について。
-
Windows Formアプリからコンソ...
-
プログラムを斜めに並べる
-
今ってプログラミング言語は何...
-
コンソールアプリを作成するの...
-
【C言語】全角文字の配列を、全...
-
C# DatagridviewにExcelシート...
-
逆コンパイルと逆アセンブルの...
-
プログラムの実行時に'<'でリダ...
-
バッチファイルで以下のような...
-
インクリメント演算子のみを用...
-
mallocについて
-
システムエンジニアの適正について
-
どちのほうがすきですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どうして+3
-
プログラミング言語についてc++...
-
今ってプログラミング言語は何...
-
2つほどお聞きしたいことがあり...
-
次の記述について
-
パソコン
-
バッチファイルで以下のような...
-
大量のデータを読み込んで表示...
-
c言語
-
Windows Formアプリからコンソ...
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
UART通信の取説で,left floati...
-
C#でTreeViewのCheckBoxのサイ...
-
10進数からN進数に変換するプロ...
-
Python、プログラミングについ...
-
[C言語]fputsとfprintfの違い
-
0 == False はいいけど
-
VisualStudioで、コードを印刷...
-
逆コンパイルと逆アセンブルの...
おすすめ情報