Palm Programmer's Laboratory
Palm OS Programmer's Companion Volume I/16-1
16-1 標準 I/O アプリケーションの作成
標準 I/O アプリケーションを作成するには、ヘッダファイル StdIOPalm.h をインクルードする必要があります。このヘッダのインクルードに加え、アプリケーションはモジュール StdIOPalm.c をリンクしなければなりません。このモジュールは cmd および cmdPBP パラメータからコマンドライン引数を抽出する PilotMain 関数、および標準 I/O プロバイダが提供する適切なコールバックを実行するために必要なグルー(glue)コードを提供します。
アプリケーションは通常と同じようにビルドしますが、データベースタイプは 'appl' のかわりに sioDBType ('sdio') を指定します。さらに、アプリケーションは“Cmd-cmdname”という形式で命名される必要があります。ここで、cmdname はアプリケーションを実行するためのコマンド名になります。例えば、ping コマンドのデータベース名は“Cmd-ping”になります。
Palm VII ハンドヘルドでは、ネットワークパネルのログウィンドウが標準 I/O プロバイダアプリケーションになっています。これには2つの標準 I/O アプリケーション ―― info と finger ―― が組み込まれています。ROMには追加として、ping と nettrace の2つがあります。
Palm ハンドヘルド向けにコンパイルする場合、エントリポイントとなる関数の名前は SioMain でなければならず、2つのパラメータ ―― argc と argv ―― を受け取る必要があります。以下に、標準 I/O アプリケーションのもっとも簡単な例を示します。
#include <StdIOPalm.h> Int16 SioMain(UInt16 argc, Char* argv[ ]) { printf(“Hello World\n”); }
標準 I/O アプリケーションでは、いくつかの入出力関数を使用することができます。これらの関数には、対応するUNIX 関数と同じ名前がつけられています。これらの関数はこの章の末尾の表に一覧されています。
標準 I/O アプリケーションは標準入力(stdin)からの入力を受け入れ、標準出力(stdout)への出力を行なうことができます。標準入力デバイスには、標準 I/O プロバイダアプリケーションで入出力に使用されるテキストフィールドが関連付けられます。標準出力デバイスも同じテキストフィールドに関連付けられます。