ちゃんと実身を作成する

「結果」キャビネットに実身「output」を作成するプログラムは次のようになります。

#include <sample.h>

VOID main(W argc, TC ** argv)
{
  LINK DestLink;
  WERR WErr, DestFD;
  ERR Err;

  WErr = get_lnk(L"結果", &DestLink, F_NORM);
  Err = cre_fil(&DestLink, L"output", NULL, 1, F_FIX);
  DestFD = opn_fil(&DestLink, F_WRITE, NULL);
  cls_fil( DestFD );
}

プログラムを置いておきます

プログラムの解説

  1. WErr = get_lnk(L"結果", &DestLink, F_NORM);
    まず結果キャビネットをDestLinkとして取得します。
  2. Err = cre_fil(&DestLink, L"output", NULL, 1, F_FIX);
    結果キャビネットの中にoutputという名前で実身を作ります。F_FIXは、今から作る実身はDestLinkで指定する実身の中に作りますよ、という意味です。更に、作った実身を指すリンクがDestLinkに上書きされて返ります。
  3. DestFD = opn_fil(&DestLink, F_WRITE, NULL);
    そのDestLinkを使ってファイルディスクリプタを作ります。

注記

このプログラムで結果キャビネットの中に実身を作ることはできましたが、「結果」という名前を持つものが複数あったらどうなるのだ、という問題は依然そのままです。結局、BTRON仕様としては仮身から起動したり小物として起動したりするなど、まともにプログラムを作るしかありませんが、勉強ということでこれはそのままにしておきます。


Tamakoshi Hiroki
Last modified: Tue Mar 22 23:21:23 2005