日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
writev |
ファイルに書き込みを行います。
#include <uio.h>関数バリアント writev関数は,それぞれ 32 ビットと 64 ビットのポインタ・サイズで使用するための _writev32と __writev64という名前のバリアントを持っています。ポインタ・サイズ固有の関数の使用方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.9 節を参照してください。ssize_t writev (int file_desc, const struct iovec *iov, int iovcnt);
ssize_t __writev64 (int file_desc, const struct __iovec64 *iov, int iovcnt); (Integrity, Alpha)
file_desc
現在,書き込みまたは更新用にオープンされているファイルを参照するファイル記述子。iov
出力データの取得元となる iovec構造体の配列。iovcnt
iov 配列のメンバによって指定されるバッファの数。
writev関数は writeと同じ機能を持ちますが,出力データを iov 配列のメンバ (iov[0], iov[1], ..., iov[iovcnt - 1]) で指定される iovcnt 個のバッファから取得します。iovcnt 引数は,0 よりも大きく, <limits.h>に定義されている {IOV_MAX} 以下である場合に有効となります。個々の iovecエントリは,データの取得元となるメモリ内の領域のベース・アドレスと長さを指定します。 writev関数は,その領域全体を書き込んだ後に,次の領域に進みます。
filedes が通常のファイルを参照しており, iov がポイントする配列内のすべての iov_lenメンバが 0 だった場合, writevは 0 を返し,何の効果も持ちません。
その他のファイル・タイプでの動作は定められていません。
iov_len値の合計が SSIZE_MAX よりも大きい場合,操作は失敗し,データは転送されません。
実行に成功すると, writevは実際に書き込まれたバイト数を返します。それ以外の場合は値 - 1 を返し,ファイル・ポインタは変更されず, errnoはエラーを示す値に設定されます。
x 書き込まれたバイト数。 -1 エラーを示します。ファイルの時刻は変更されず,関数は errno を以下のいずれかの値に設定します。
- EBADF--- file_desc 引数が,書き込み用にオープンされた有効なファイル記述子でない。
- EINTR---書き込み操作はシグナルを受信したために終了し,データは転送されなかった。
- EINVAL--- iov 配列の中の iov_len 値の合計が ssize_t のオーバフローを引き起こす,または iovcnt 引数が 0 以下,あるいは {IOV_MAX} よりも大きかった。
- EIO---物理 I/O エラーが発生した。
- ENOSPC---ファイルを含んでいるデバイス上に空きスペースがない。
- EPIPE---どのプロセスの読み込み用にもオープンされていない,または片側だけがオープンされているパイプまたは FIFO に書き込もうとした。スレッドには SIGPIPE シグナルも送信される。
目次 | 索引 |
|