
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
kbhit()相当の関数を作ればいいのですが...
こちらをよく読むと参考になるかもしれません。
http://www.nishimoto-site.net/archiver/fj/os/lin …
参考URL:http://www.nishimoto-site.net/archiver/fj/os/lin …
No.5
- 回答日時:
再びNo.4です。
前の回答中に書いたCBREAKモードは、Enterキーの入力を
待たずにキー入力を行う機能でした。
今回は関係ありませんので、無視して下さい。
No.4
- 回答日時:
一般的には、マルチスレッドにする必要は無いと思います。
No.1さんのご指摘通り、ioctl()を使ってrawモード(CBREAKモードというのもあったような気が...)
にすれば、getchar()が直ちに-1を返すようにできると思います。
ただ、お使いのUNIXやデバイスによって、制約はあるかもしれません。
No.3
- 回答日時:
イマイチ意味が分からないのですが。
。。consio.hのgetch、getche辺りの話をしてるのかな?
それとも入力待ち時間中も別処理をしたいって事ですかね?
そうなると通常のProgramでは一本の動きしか出来ませんよ。
あくまで【通常】ですけどね。
入力待ちの時に別処理をしたいのであれば、プロセス管理とかしないと無理かなぁ…
プロセス管理を行って、処理Aをさせている最中に処理Bするって事になるとforkとか....
この回答への補足
実行が停止しないgetcharみたいな関数とは
windowsのconsio.hのgetchとかのことです
うろ覚えであいまいな書き方になってました…
例えばシューティングゲームを作るとしたら、
プレイヤーが何にも入力してなくても
ゲームの処理は実行されてなければなりません。
でも、C言語標準のgetchar関数では
入力が終了するまでプログラムの実行が
停止されてしまうので、
そうならない関数や方法を探してるのです。
あと、forkとかできれば使いたくはないのですが…
一つのプログラムだけでできないのでしょうか…
No.2
- 回答日時:
原始的な方法ですと…
プログラムA(実際の処理)
ファイル"test.txt"を開く。
ファイルに文字が入力されていれば何らかの処理を行い、空のファイルを上書きする。
ファイルを閉じる。
リアルタイムの処理を実施。
繰り返し。
プログラムB(入力処理)
getcharで入力を待つ。
入力を受け付けたらファイル"test.txt"を開いて何か書き込む。
繰り返し。
の2本立てで動作するとか。
(上の仕様だとイロイロ問題が起きて、それはそれで面白いのですが…)
--
最近の普通の方法ですと、マルチスレッドとか、スレッド同期とか、そういうキーワードで情報収集してみては?
回答ありがとうございます。
複数のプログラムを一度に実行するつもりもなく
マルチスレッド等を用いるつもりもありませんでしたが
こういう方法も試してみようと思います。
No.1
- 回答日時:
はじめまして。
Linuxに関してしか知らないので、その点はご了承ください。
Googleで「stty」、「Linux」、「rawモード」をキーワードにして検索したところ、参考URLのページを見つけました。
MLの過去ログですので、その前後を参照していただければ、もう少し詳細が分かるかもしれません。
・・・と、最近こればっかりですので、もう少し。
「Linux システムコール」(塚越 一雄 著/技術評論社 ISBN4-7741-1031-0)という本があるのですが、この本にも関連する話題が載っています。
システムコールについて書かれた本なのですが、私が手に取った本の中では、一番読みやすくまとめられていました。
他の情報源としては、JFやJMが挙げられるかと思います。
日本語で情報を得ることができるので便利です。
JF → http://www.linux.or.jp/JF/
JM → http://www.linux.or.jp/JM/
長文・駄文、失礼致しました。
参考URL:http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/~po …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
win10で、正確な待ち時間の作り方
-
関数呼び出しの処理
-
VC++2010 GDIオブジェクトの解...
-
処理速度向上のための小さな努力
-
Macターミナルで実行中のプログ...
-
powershell を使いカレントディ...
-
バックグラウンドのプロセスの...
-
パソコンの演算速度について
-
エクセルVBA 大容量CSVファイル...
-
VBSの処理中一旦処理を止めて再...
-
【C言語】再帰が時間がかかる...
-
子プロセスの状態を親プロセス...
-
keycodeについて
-
sendkeysにてALT+CTRL+INSERTを...
-
マイコンからプログラムを読み...
-
スーパーのレジで並んでいたら...
-
逆コンパイルと逆アセンブルの...
-
スレッドにて同一メモリの書き...
-
プロセスIDからウィンドウハ...
-
フレームワーク「4.8.1」で、[S...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
win10で、正確な待ち時間の作り方
-
小数点を含む数値かどうか判断...
-
Excelでのセル内容の高速消去方法
-
If Not c Is Nothing Then ~延...
-
for文の処理に時間がかかってい...
-
Excel VBAにて、2GB超の点群デ...
-
VB 電卓 メモリー機能
-
絶対パスの取得について
-
DirectShowでのfilterの作り方
-
wavelet変換のソフト
-
エクセルVBA 時間抜けの取得
-
Excel(VBA)でSetTimer関数を使...
-
プログラム上のCPU稼働率低減に...
-
ノットイコールを教えて下さい
-
テキストファイルの空行をスキ...
-
.netからexcel操作の処理速度が...
-
SQLの速度をあげるには・・・
-
基本情報技術者試験詳しい方へ...
-
Excel VBA データ削除の高速化
-
VBA言語プログラミング
おすすめ情報