では、能書きはいいのでとにかく実身を読むプログラムを作りましょう。UNIXで言えばO_RDONLYでopenすることに相当する部分です。
#include <sample.h>
VOID main(W argc, TC ** argv)
{
LINK SrcLink;
WERR WErr, SrcFD;
WErr = get_lnk(L"test", &SrcLink, F_NORM);
SrcFD = opn_fil(&SrcLink, F_READ, NULL);
cls_fil( SrcFD );
printf( "test01\n" );
}
このプログラム一式を置いておきます。型については仕様書第1章 基本データタイプ又はinclude/typedef.hを見て下さい。
まず、BTRON用の宣言をしておかなければなりませんが、それを毎回やるのは馬鹿らしいのでsample.hの中にまとめておきます。
#include <basic.h>
#include <bstdlib.h>
#include <bstdio.h>
#include <bstring.h>
#include <errcode.h>
#include <tstring.h>
#include <tcode.h>
#include <btron/btron.h>
#include <btron/dp.h>
#include <btron/hmi.h>
#include <btron/vobj.h>
#include <btron/libapp.h>
#include <btron/tip.h>
これだけあれば大丈夫でしょう。プログラム一式の中に入っています。
プログラムの実行開始部はmain関数とMAIN関数のどちらかが使えます。ここではmain関数だけ扱います。ファイル操作関数については仕様書1.6.8 システムコールにまとめられているので適宜参照して下さい。システムコールごとに見られるといいのですが…
このプログラムではエラー処理を全く行っていません。get_lnkはエラーが起こった場合には負の値を返します。従ってWErrの値に応じて処理をすべきです。例えば
WErr = get_lnk(L"test", &SrcLink, F_NORM);
if ( WErr < 0 ) {
printf( "error: get_lnk" );
exit( 0 );
}
のようにします。以下のプログラム例でもエラー処理を省きます。ここでの主眼はTADを読み書きするための勉強であって、エラー処理を入れるとプログラムが繁雑で見にくくなるからです。
ここで出てきた関数はget_lnkとopn_filとcls_filです。