5.3.15 n_rcv

<この項の構成>
(1) 機能概要
(2) 構文
(3) 設定情報
(4) リターン情報
(5) 特記事項

(1) 機能概要

データを受信します。

(2) 構文

#include <xnfw/niuser.h>
rcode = n_rcv(fd, buf, nbytes, flags);
int rcode, fd;
char *buf;
unsigned int nbytes;
int *flags;

(3) 設定情報

(a) fd

ネットワーク端点を指定します。

(b) buf

データを受信するバッファアドレスを指定します。

(c) nbytes

受信バッファのサイズを指定します。

(d) flags

受信データの付加情報が設定されるエリアを指定します。

(4) リターン情報

(a) リターンコード

0以上:正常終了(受信したデータ長を返します)

-1:異常終了

エラー番号がn_errnoに設定されています。エラー番号の詳細は,「9.1 エラー番号一覧」を参照してください。

(b) 受信データの付加情報(flags)

flagsで指定したエリアに,次の受信データの付加情報が設定されます。なお,受信パケットの内容によっては,N_MOREとN_QBITには論理和形式で設定される場合があります。

N_MORE:
継続するデータがあり,さらにn_rcvの発行が必要であることを示します。
N_QBIT:
受信データに,Qビットが付加されていることを示します。
NULL:
継続するデータはなく,かつQビットも付加されていないことを示します。

(5) 特記事項

n_rcvは,非同期モードで動作している場合はデータ未受信であれば,-1でリターンして,n_errnoにNNODATAが設定されます。また,データを受信しているが後続データがある場合,すでに受信したデータだけをリターンします。同期モードで動作している場合,データ未受信であれば,データを受信するまでリターンしません。また,データを受信しているが後続データがある場合は,受信バッファが満杯になるまでリターンしません。