254 lines
7.1 KiB
Groff
254 lines
7.1 KiB
Groff
.\" Copyright (c) 1996 Jordan Hubbard (jkh@FreeBSD.org)
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" %FreeBSD: src/lib/libftpio/ftpio.3,v 1.21.2.8 2001/12/17 10:08:30 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd June 17, 1996
|
|
.Dt FTPIO 3
|
|
.Os
|
|
.Sh 名称
|
|
.Nm ftpLogin ,
|
|
.Nm ftpChdir ,
|
|
.Nm ftpErrno ,
|
|
.Nm ftpGetModtime ,
|
|
.Nm ftpGetSize ,
|
|
.Nm ftpGet ,
|
|
.Nm ftpPut ,
|
|
.Nm ftpBinary ,
|
|
.Nm ftpPassive ,
|
|
.Nm ftpVerbose ,
|
|
.Nm ftpGetURL ,
|
|
.Nm ftpPutURL ,
|
|
.Nm ftpLoginAf ,
|
|
.Nm ftpGetURLAf ,
|
|
.Nm ftpPutURLAf
|
|
.Nd FTPIO ユーザライブラリ
|
|
.Sh 書式
|
|
.In ftpio.h
|
|
.Ft FILE *
|
|
.Fn ftpLogin "char *host" "char *user" "char *passwd" "int ftp_port" "int verbose" "int *retcode"
|
|
.Ft int
|
|
.Fn ftpChdir "FILE *stream" "char *dirname"
|
|
.Ft int
|
|
.Fn ftpErrno "FILE *stream"
|
|
.Ft const char *
|
|
.Fn ftpErrString "int errno"
|
|
.Ft time_t
|
|
.Fn ftpGetModtime "FILE *stream" "char *file"
|
|
.Ft off_t
|
|
.Fn ftpGetSize "FILE *stream" "char *file"
|
|
.Ft FILE *
|
|
.Fn ftpGet "FILE *stream" "char *file" "off_t *seekto"
|
|
.Ft FILE *
|
|
.Fn ftpPut "FILE *stream" "char *file"
|
|
.Ft int
|
|
.Fn ftpAscii "FILE *stream"
|
|
.Ft int
|
|
.Fn ftpBinary "FILE *stream"
|
|
.Ft int
|
|
.Fn ftpPassive "FILE *stream" "int status"
|
|
.Ft void
|
|
.Fn ftpVerbose "FILE *stream" "int status"
|
|
.Ft FILE *
|
|
.Fn ftpGetURL "char *url" "char *user" "char *passwd" "int *retcode"
|
|
.Ft FILE *
|
|
.Fn ftpPutURL "char *url" "char *user" "char *passwd" "int *retcode"
|
|
.Ft FILE *
|
|
.Fn ftpLoginAf "char *host" "int af" "char *user" "char *passwd" "int ftp_port" "int verbose" "int *retcode"
|
|
.Ft FILE *
|
|
.Fn ftpGetURLAf "char *url" "int af" "char *user" "char *passwd" "int *retcode"
|
|
.Ft FILE *
|
|
.Fn ftpPutURLAf "char *url" "int af" "char *user" "char *passwd" "int *retcode"
|
|
.Sh 解説
|
|
この関数は、FTP コネクションを管理するための
|
|
高レベルなライブラリを実装します。
|
|
.Pp
|
|
.Fn ftpLogin
|
|
は、指定された
|
|
.Fa user ,
|
|
.Fa passwd ,
|
|
.Fa ftp_port
|
|
(0 を渡した場合、標準 FTP ポートの 21 がデフォルトで
|
|
.Fa ftp_port
|
|
になる),
|
|
.Fa verbose
|
|
フィールドを
|
|
使用してログインしようとします。ログインに成功すれば、標準的な
|
|
ストリーム記述子が返されます。この記述子は、後の FTP オペレーションに
|
|
渡してください。エラーが発生した場合は NULL が返され、
|
|
.Fa retcode
|
|
には、外部サーバが返すエラーコードが入ります。
|
|
.Pp
|
|
.Fn ftpChdir
|
|
は、サーバの CD コマンドを出し、
|
|
.Fa dir
|
|
で指定された
|
|
ディレクトリに変更しようとします。問題がなければ 0 が返されます。
|
|
問題がある場合は、サーバのエラーコードが返されます。
|
|
.Pp
|
|
.Fn ftpErrno
|
|
は、最後のオペレーションのサーバエラーコードを返します。
|
|
FTP のエラーコードに精通している場合は、エラーの原因の確認に有益です。
|
|
.Fn ftpErrString
|
|
は、人間が判読できるサーバエラーコードを返します。
|
|
.Pp
|
|
.Fn ftpGet
|
|
は、
|
|
.Fa file
|
|
引数が指定するファイルを取り出し (FTP サーバのカレントディレクトリ
|
|
からの相対パスと想定される。
|
|
.Fn ftpChdir
|
|
参照)、そのファイルのための新しい FILE* ポインタを返します。
|
|
エラーが発生した場合は NULL を返します。
|
|
.Fa seekto
|
|
が NULL ではない場合、これが指す整数の内容は、ファイルの再開ポイント
|
|
として使用されます。つまり、返されたストリームは、ファイルの
|
|
.Fa *seekto
|
|
バイトを指しているということです。これは、エラーで失敗した転送を
|
|
効率的に再開する際に便利です。シーク操作がエラーになった場合、
|
|
.Fa *seekto
|
|
の値は 0 になります。
|
|
.Pp
|
|
.Fn ftpGetModtime
|
|
は、
|
|
.Fa file
|
|
引数が指定するファイルの最終修正時刻を
|
|
返します。ファイルをオープンできない場合は 0 が返されます。
|
|
.Pp
|
|
.Fn ftpGetSize
|
|
は、
|
|
.Fa file
|
|
引数が指定するファイルのサイズをバイト単位で
|
|
返します。ファイルをオープンできない場合は -1 が返されます。
|
|
.Pp
|
|
.Fn ftpPut
|
|
は、
|
|
.Fa file
|
|
引数が指定する新しいファイルを作成し
|
|
(FTP サーバのカレントディレクトリからの相対パスと想定される。
|
|
.Fn ftpChdir
|
|
参照)、ファイルの新しい
|
|
.Fa stream
|
|
ポインタを返します。エラーが発生した場合は NULL を返します。
|
|
.Pp
|
|
.Fn ftpAscii
|
|
は、
|
|
.Fa stream
|
|
が指定する現行サーバのコネクションに
|
|
ASCII モードを設定します。
|
|
.Pp
|
|
.Fn ftpBinary
|
|
は、
|
|
.Fa stream
|
|
が指定する現行サーバのコネクションに
|
|
バイナリモードを設定します。
|
|
.Pp
|
|
.Fn ftpPassive
|
|
は、
|
|
.Fa stream
|
|
が指定する現在のサーバのコネクションのパッシブモード
|
|
(ファイアウォール用)を論理値
|
|
.Fa status
|
|
に設定します。
|
|
.Pp
|
|
.Fn ftpVerbose
|
|
は、
|
|
.Fa stream
|
|
が指定する現在のサーバのコネクションの冗長モードを論理値
|
|
.Fa status
|
|
に設定します。
|
|
.Pp
|
|
.Fn ftpGetURL
|
|
は、
|
|
.Fa URL
|
|
が指定するファイルを取り出します。これは、
|
|
サーバの
|
|
.Fa stream
|
|
が返されないこと除けば、
|
|
.Fn ftpLogin ,
|
|
.Fn ftpChdir ,
|
|
.Fn ftpGet
|
|
を組み合わせた操作と同じとみなすことができます。
|
|
サーバとのコネクションは、ファイルが完全に読み込まれた時点で
|
|
クローズされます。複数のファイルを取り出す場合は、低レベルのルーチン
|
|
を使用してください。この方がはるかに効率的です。
|
|
.Pp
|
|
.Fn ftpPutURL
|
|
は、
|
|
.Fa URL
|
|
が指定するファイルを作成します。これは、
|
|
サーバの
|
|
.Fa stream
|
|
が返されないことを除けば、
|
|
.Fn ftpLogin ,
|
|
.Fn ftpChdir ,
|
|
.Fn ftpPut
|
|
を組み合わせた操作と同じとみなすことができます。
|
|
サーバとのコネクションは、ファイルが完全に書き込まれた時点で
|
|
クローズされます。複数のファイルを作成する場合は、低レベルのルーチン
|
|
を使用してください。この方がはるかに効率的です。
|
|
.Pp
|
|
.Fn ftpLoginAf ,
|
|
.Fn ftpGetURLAf ,
|
|
.Fn ftpPutURLAf
|
|
は、
|
|
.Fn ftpLogin ,
|
|
.Fn ftpGetURL ,
|
|
.Fn ftpPutURL
|
|
と同様ですが、アドレスファミリ
|
|
except that they are able to specify address family
|
|
.Fa af
|
|
を指定可能な点が異なります。
|
|
.Sh 環境変数
|
|
.Bl -tag -width FTP_PASSIVE_MODE -offset 3n
|
|
.It Ev FTP_TIMEOUT
|
|
.Tn FTP
|
|
接続を異常終了させる前に、通信相手からの応答を待つ最大時間
|
|
(秒単位) です。
|
|
.It Ev FTP_PASSIVE_MODE
|
|
定義されている場合、パッシブモード
|
|
.Tn FTP
|
|
を強制的に使用します。
|
|
ただし ``NO'' または ``no'' に定義されている場合は、
|
|
アクティブモードを強制的に使用します。
|
|
定義されている場合、この変数の設定は、
|
|
.Fn ftpPassive
|
|
の呼び出しに優先します。
|
|
.El
|
|
.Sh バグ
|
|
こいつを徹底的に使い込むと、内部状態マシンを混乱させてしまう可能性が
|
|
ありますが、私がテストした限りでは、非常に丈夫に作られていることが
|
|
確かめてあります。
|
|
.Pp
|
|
.Sh 歴史
|
|
Poul-Henning Kamp のシステムインストレーションユーティリティ用
|
|
ftp ドライバとして始まり、Jordan Hubbard が、stdio の拡張という
|
|
より一般的な形式に変更しました。
|
|
Jean-Marc Zucconi のアイデアと拡張機能もいくつか盛り込まれています。
|
|
.Sh 作者
|
|
.An Jordan Hubbard ,
|
|
.An Poul-Henning Kamp ,
|
|
.An Jean-Marc Zucconi
|
|
.\"X kuma 1999-11-6
|