INNDCOMM(3)

名前
inndcomm - INND へのコマンドを送る InterNetNews ライブラリ

形式
#include "inndcomm.h"
int
ICCopen()
int
ICCclose()
void
ICCsettimeout(i)
    int	i;
int
ICCcommand(cmd, argv, replyp)
    char	cmd;
    char	*argv[];
    char	**replyp;
int
ICCcancel(mesgid)
    char	*mesgid;
int
ICCreserve(why)
    char	*why;
int
ICCpause(why)
    char	*why;
int
ICCgo(why)
    char	*why;
extern char *ICCfailure;

機能説明
この man ページでは InterNetNews ライブラリである libinn(3) の一部を説明します。 これはローカルホストで起動中の innd(8) にコマンドを送るために使用します。 ``ICC'' は Innd Control Command を意味します。

ICCopen は UNIX ドメインのデータグラム型のソケットを作成し、サーバの制御用のソケットに bind します。 このルーチンの戻り値はエラーでは -1 を、成功すれば 0 となります。 このルーチンはこの man ページで説明する他のルーチンより前に呼ばれなければいけません。

ICCclose は ICCopen で作成したすべてのディスクリプタをクローズします。 このルーチンの戻り値はエラーでは -1 を、成功すれば 0 となります。

ICCsettimeout は次で説明するどのルーチンよりも前に呼ぶことができ、 サーバからの応答があるまでにどれぐらい待つかを指定します。 これは、 signal(2) で SIGALRM を設定し、SIGALRM を受けることにより行なわれます。 タイムアウトが 0 より小さければ、応答を待ちません。 SC_SHUTDOWN、SC_XABORT、SC_XEXEC コマンドでも応答はありません。 デフォルトでは、サーバが応答するまで待ちます。 これはタイムアウトを 0 とした時と同じです。

ICCcommand はサーバに cmd というコマンドを argv というパラメータで送ります。 このルーチンの戻り値はエラーでは -1 となります。 サーバが応答し replyp が NULL でなければ、サーバからの応答テキストとして割り当てられたバッファとなっています。 このバッファは、``<digits><space><text>'' という形式の文字列で、 ``digits'' はテキスト形式であらかじめ決められた終了コードとなっています。 このルーチンの戻り値が 0 の場合は正常に終了したことを示します。 4000 バイトより長い応答は、その分削られます。 cmd の値として使用可能なものは、``inndcomm.h'' で定義されています。 各コマンドのパラメータは ctlinnd(8) で説明しています。 このルーチンの戻り値は、エラーの場合は -1 で、 それ以外はサーバから送られる終了コードでこれは負の値ではありません。

ICCcancel はサーバに ``cancel'' を送ります。 mesgid はキャンセルすべき記事の Message-ID です。 戻り値は ICCcommand と同じです。

ICCpause 、 ICCreserve および ICCgo はそれぞれ、``pause''、``reserve'' および ``go'' コマンドをサーバに送ります。 ICCreserve を使用している場合、 ICCpause で使用する why の値と一致しなければいけません。 また、 ICCgo で使用する値と ICCpause で使用する値も一致しなければいけません。 この三つのルーチンの戻り値は ICCcommand と同じです。

上記のルーチンでエラーとなった場合、 ICCfailure という変数にエラーとなったシステムコールを示します。

履歴
InterNetNews 用に Rich $alz <rsalz@uunet.uu.net> により記述されました。

関連項目
ctlinnd(8)、 innd(8)、 libinn(3)