プロが教えるわが家の防犯対策術!

現在簡単なゲームをunix系のOSのC言語でつくってますが
なにも入力されなくても停止せず実行を続けられる
getcharのような関数はないのでしょうか?

windows系のOSにはcons.hヘッダーあたりに
そんな関数あったような気がするのですが。。。

普通のgetcharだと、文字が入力されるまで(enter押されるまで)
そこで実行が一時中断されてしまい
リアルタイムで動くプログラムができないのですが。。。

A 回答 (6件)

kbhit()相当の関数を作ればいいのですが...


こちらをよく読むと参考になるかもしれません。
http://www.nishimoto-site.net/archiver/fj/os/lin …

参考URL:http://www.nishimoto-site.net/archiver/fj/os/lin …
    • good
    • 0
この回答へのお礼

回答ありがとうございます
これらのページを参照してみようとおもいます

お礼日時:2003/11/28 14:09

再びNo.4です。


前の回答中に書いたCBREAKモードは、Enterキーの入力を
待たずにキー入力を行う機能でした。
今回は関係ありませんので、無視して下さい。
    • good
    • 0

一般的には、マルチスレッドにする必要は無いと思います。


No.1さんのご指摘通り、ioctl()を使ってrawモード(CBREAKモードというのもあったような気が...)
にすれば、getchar()が直ちに-1を返すようにできると思います。
ただ、お使いのUNIXやデバイスによって、制約はあるかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
ioctlを調べて使ってみようと思います

お礼日時:2003/11/26 18:34

イマイチ意味が分からないのですが。

。。
consio.hのgetch、getche辺りの話をしてるのかな?

それとも入力待ち時間中も別処理をしたいって事ですかね?
そうなると通常のProgramでは一本の動きしか出来ませんよ。
あくまで【通常】ですけどね。
入力待ちの時に別処理をしたいのであれば、プロセス管理とかしないと無理かなぁ…
プロセス管理を行って、処理Aをさせている最中に処理Bするって事になるとforkとか....

この回答への補足

実行が停止しないgetcharみたいな関数とは
windowsのconsio.hのgetchとかのことです
うろ覚えであいまいな書き方になってました…

例えばシューティングゲームを作るとしたら、
プレイヤーが何にも入力してなくても
ゲームの処理は実行されてなければなりません。

でも、C言語標準のgetchar関数では
入力が終了するまでプログラムの実行が
停止されてしまうので、
そうならない関数や方法を探してるのです。

あと、forkとかできれば使いたくはないのですが…
一つのプログラムだけでできないのでしょうか…

補足日時:2003/11/26 18:12
    • good
    • 0

原始的な方法ですと…



プログラムA(実際の処理)
ファイル"test.txt"を開く。
ファイルに文字が入力されていれば何らかの処理を行い、空のファイルを上書きする。
ファイルを閉じる。
リアルタイムの処理を実施。
繰り返し。

プログラムB(入力処理)
getcharで入力を待つ。
入力を受け付けたらファイル"test.txt"を開いて何か書き込む。
繰り返し。

の2本立てで動作するとか。
(上の仕様だとイロイロ問題が起きて、それはそれで面白いのですが…)

--
最近の普通の方法ですと、マルチスレッドとか、スレッド同期とか、そういうキーワードで情報収集してみては?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

複数のプログラムを一度に実行するつもりもなく
マルチスレッド等を用いるつもりもありませんでしたが
こういう方法も試してみようと思います。

お礼日時:2003/11/26 18:11

はじめまして。



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 …
    • good
    • 0
この回答へのお礼

回答ありがとうございます
参考URLを参照してみようと思います。

お礼日時:2003/11/26 18:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!