[Armadillo:06411] Re: Armadillo-440:コマンドプロンプトへの文字列表示

Yasushi SHOJI email@hidden
2010年 12月 24日 (金) 12:33:07 JST


At Fri, 24 Dec 2010 12:03:28 +0900,
Shin-ya Koga wrote:
> 
> 高野さん([Armadillo:06408]):
> >Armadillo-440を使用しております。
> >簡単なアプリを作成し自動起動させた場合において、
> >そのアプリからデバグ用としてコマンドプロンプトへ
> >文字列を表示させる方法を教えてください。
> 
> これは、Linux 一般の話になると思いますが、syslog() をお使いに
> なるのが良いと思います:
>  http://archive.linux.or.jp/JM/html/LDP_man-pages/man3/syslog.3.html
>  http://archive.linux.or.jp/JM/html/sysklogd/man8/syslogd.8.html

手軽に shell script からやるなら logger というツールもあります。

> >プロンプトから起動させたアプリについては、printfによる表示は可能なのです 
> >が・・・。
> >自動起動アプリとプロンプトからの起動アプリでは、printfへの制約があるので 
> >しょうか。
> 
> 「自動起動」が、具体的に何を指しているのか分からないのですが、
> コンソールから起動しない場合、そのアプリケーション(プロセス)
> の標準出力がコンソールに結び付けられませんので、printf() の
> 出力が表示されない、ということだと思います。

この辺が、iTRON などと違って面倒ですよね。分っている人には「どうせ、シ
リアルじゃん」みたいな。まぁ、multi user multi process のOSとしては他の
人のリソースを勝手に使わせるわけにはいかないので、あたりまえなんですが。

で、syslog を経由すると出てくるのは /dev/console に書き出しているから
なので、もしかすると

	echo hello > /dev/console

とすると出るかもしれません。基本的に root の権限が必要です。
/dev/console は /usr/include/paths.h で _PATH_CONSOLE と定義されている
ので、これを使うと良いです。
-- 
           yashi




armadillo メーリングリストの案内