5.3.2 n_alloc

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

(1) 機能概要

ネットワーク関数の引数となる構造体に対してメモリを割り当てます。また,その構造体が参照するバッファに対してもメモリを割り当てます。

(2) 構文

#include <xnfw/niuser.h>
#include <stdio.h>
raddr = *n_alloc(fd, struct_type, fields);
char *raddr;
int fd;
int struct_type;
int fields;

(3) 設定情報

(a) fd

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

(b) struct_type

割り当てる構造体のタイプを指定します。割り当てる構造体のタイプを表5-2に示します。

表5-2 割り当てる構造体のタイプ

タイプ割り当てる構造体
N_BINDstruct n_bind
N_CALLstruct n_call
N_DISstruct n_discon
N_INFOstruct n_info
N_RESETstruct n_reset
(c) fields

struct_typeで指定した構造体に関する,すべてのフィールドを割り当てるN_ALLを指定します。

fieldsに上記以外の値が指定された場合,n_errnoにNEPARAMを設定してエラーリターンします。

(4) リターン情報

(a) リターンコード

整数値:新たに割り当てた構造体のポインタ

0:異常終了

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

(5) 特記事項

bufポインタおよびmaxlenは,n_openおよびn_getinfo関数でユーザに返される大きさの情報に基づいて初期設定されます。ただし,指定したフィールドに関連する値が-1または-2の場合,指定されていないフィールドには,bufにNULLが,maxlenに0が設定されます。