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 のウィンドウと簡単なグラフが表示されるはずです。