doc/ja_JP.eucJP/man/man3/ftpio.3
Kazuo Horikawa cb5d1a9147 Replace jpman project specific RCS keyword with $FreeBSD.
jpman project specific RCS keyword (jpman %Id) is obsolete,
after manual entries are stored in freefall CVS repository.
This old Id is useless and more worse it confuses users and bug reporters.
So, this old Id is removed.

Submitted by:jpman project <man-jp@jp.FreeBSD.org>
2001-05-14 01:10:24 +00:00

229 lines
6.3 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.
.\"
.\" %Id: ftpio.3,v 1.17 1998/03/19 07:34:09 charnier 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
.Nd FTPIO ユーザライブラリ
.Sh 書式
.Fd #include <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"
.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
で指定された
ディレクトリに変更しようとします。問題がなければゼロが戻されます。
問題がある場合は、サーバのエラーコードが戻されます。
.Pp
.Fn ftpErrno
は、最後のオペレーションのサーバエラーコードを戻します。
FTP のエラーコードに精通している場合は、エラーの原因の確認に有益です。
.Fn ftpErrString
は、人間が判読できるサーバエラーコードを戻します。
.Pp
.Fn ftpGet
は、
.Fa file
引数が指定するファイルを取り出し (FTP サーバのカレントディレクトリ
からの相対パスと想定される。
.Fn ftpChdir
参照)、そのファイルのための新しい FILE* ポインタを戻します。
エラーが発生した場合は NULL を戻します。
.Fa seekto
が NULL ではない場合、これが指す整数の内容は、ファイルの再開ポイント
として使用されます。つまり、戻されたストリームは、ファイルの
.Fa *seekto
バイトを指しているということです。これは、エラーで失敗した転送を
効率的に再開する際に便利です。シーク操作がエラーになった場合、
.Fa *seekto
の値はゼロになります。
.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
を組み合わせた操作と同じとみなすことができます。
サーバとのコネクションは、ファイルが完全に書き込まれた時点で
クローズされます。複数のファイルを作成する場合は、低レベルのルーチン
を使用してください。この方がはるかに効率的です。
.Sh 環境変数
.Bl -tag -width FTP_PASSIVE_MODE -offset 123
.It Ev FTP_TIMEOUT
.Tn FTP
接続を異常終了させる前に、通信相手からの応答を待つ最大時間
(秒単位) です。
.It Ev FTP_PASSIVE_MODE
パッシブモード
.Tn FTP
を強制的に使用します。
.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