1. pointer ライブラリの使い方 (C 言語)


pointer はもともと C 言語の関数の集まり (つまりライブラリ)として作られています。 今まで見てきた pointer コマンドはこのライブラリを 使いやすいように、 コマンド入力やプログラム化の部分を付け加えてできたものです。
そしてもちろん pointer のライブラリを C 言語のプログラムから直接呼ぶこともできます。 実行するスピードやデータのやりとり、 プログラムの自由度などを考えると pointer ライブラリを 使う方が便利な場合も多くあります。
この節では C 言語での pointer ライブラリの使い方、 関数一覧などを紹介します。 (以下では pointer のライブラリを、 コマンドとしての pointer と区別して 'ptr-lib' と呼ぶことにします)


1.1 ptr-lib の使い方

pointer では、newframe、newwin コマンドでウィンドウを作り、 一方でデータ型の値を用意してそれを描画していました。 ptr-lib でもその点はほとんど同じです。 以下にサンプルのファイルを用意しました。 これは一次元のグラフを書く簡単な C 言語のプログラムです。 このプログラムをもとに ptr-lib の使い方を説明していきます。
sample.c
なお、このプログラムは以下のようにコンパイルします。
% cc -c sample.c -I/usr/local/include
% cc -o a.out sample.o -L/usr/local/lib -L/usr/X11R6/lib -lptr -lpgw -lX11 -lm
詳しい説明は C 言語の入門書などにまかせますが、 最初の行の -I オプションは pgw.h、ptr.h という インクルードファイルのあるディレクトリ(パス)を指定しています。 また、次の行の -L は libpgw.a、libptr.a というライブラリファイルの あるディレクトリを指定しています。 この二つのオプションの指定は、pointer のライブラリを どこにインストールしたかによって変わってきます。 コンパイル時に「pgw.h がない」「libpgw.aがない」などという エラーが出る場合にはこのディレクトリの指定を調べてみて下さい。 また ptr-lib は X のライブラリも使っているので、 /usr/X11R6/lib もライブラリのパスの指定に入れています。 これも使っている環境によって異なる場合があるので エラーが出る場合には調べてみて下さい。
さらに、-l オプションで一緒にコンパイルする ライブラリを指定しています。 ここでは、libptr、libpgw(この二つが ptr-lib)、 libX11、libm を指定しています。 じつは -l オプションの並び順によってはコンパイルが うまくいかない場合があるので、 エラーが出る場合にはこの順番を変えてみてください。

もしコンパイルがうまくいったら、 ./a.out として実行してみて下さい。 おそらく pointer のウィンドウと簡単なグラフが表示されるはずです。