この関数の一族はNetCDF属性に関する 情報を返します。これらの関数は一つを除いて全て変数IDと属性名を必要とします。例外は nc_inq_attname 関数です。属性に関する情報には型・長さ・名前・番号などが含まれます。属性値を取得する方法については nc_get_att の節を参照してください。
関数 nc_inq_attname は変数IDと番号を与えると、属性の名前を返します。この関数は、他の全ての属性関数において属性は番号ではなく名前によってアクセスされるために、変数に関連した属性の名前を全て必要とする 一般的なアプリケーションにおいて役に立ちます。属性の番号は名前よりも 揮発性があり、同じ変数の属性が 削除された時に変わることがあります。このため、 属性の番号は 属性 IDとは呼ばれません。
関数 nc_inq_att は属性の型と長さを返します。他の関数は各々、属性の情報を一つだけ返します。
int nc_inq_att (int ncid, int varid, const char *name,
nc_type *xtypep, size_t *lenp);
int nc_inq_atttype(int ncid, int varid, const char *name,
int nc_inq_attlen (int ncid, int varid, const char *name, size_t *lenp);
int nc_inq_attname(int ncid, int varid, int attnum, char *name);
int nc_inq_attid (int ncid, int varid, const char *name, int *attnump);
この例では、 nc_inq_att を使って、既存の foo.nc という名前のNetCDFファイルにおいて、 rh という名前のNetCDF変数の属性 valid_range の型と長さと、 title という名前のグローバル属性とを調べる。
#include <netcdf.h>
...
int status; /* エラーステータス */
int ncid; /* NetCDF ID */
int rh_id; /* 変数 ID */
nc_type vr_type, t_type; /* 属性型 */
int vr_len, t_len; /* 属性長 */
...
status = nc_open("foo.nc", NC_NOWRITE, &ncid);
if (status != NC_NOERR) handle_error(status);
...
status = nc_inq_varid (ncid, "rh", &rh_id);
if (status != NC_NOERR) handle_error(status);
...
status = nc_inq_att (ncid, rh_id, "valid_range", &vr_type, &vr_len);
if (status != NC_NOERR) handle_error(status);
status = nc_inq_att (ncid, NC_GLOBAL, "title", &t_type, &t_len);
if (status != NC_NOERR) handle_error(status);