5.7 定義モードから抜ける: nc_enddef
関数nc_enddef が呼ばれるとオープンされたNetCDFファイルは定義モードから抜けます。定義モード中にNetCDFファイルに加えられた変更はチェックされ、問題がなければディスクに書き込まれます。この時、非記録変数を“フィル値”に初期化することも可能です。(5.12節「書き込みのフィルモードを設定する: NF_SET_FILL」(p.43)を参照。)NetCDFファイルはデータモードになり、変数データの読み取り・書き込みが可能になります。
この呼び出しは、場合によってデータをコピーする作業が含まれます。これに関しての詳細は 9章「NetCDFファイルの構造と性能」(p.99)にあります。
用法
int nc_enddef(int ncid);
ncid 以前のnc_open または nc_create呼び出しで返されたNetCDF ID
エラー
エラーが発生していなければ、nc_enddefはNC_NOERRの値を返します。それ以外の場合には、返されたステータスがエラーを示します。エラーの原因として下記が挙げられます。
・ 指定されたNetCDFファイルが定義モードに無い。
・ 指定されたNetCDF IDが開いているNetCDFファイルを参照していない。
例
この例はnc_enddefを使ってfoo.ncというNetCDFファイルの定義モードを終了し、データモードにします。
#include <netcdf.h>
…
int status;
int ncid;
…
status = nc_create("foo.nc", NC_NOCLOBBER, &ncid);
if (status != NC_NOERR) handle_error(status);
… /* 次元・変数・属性を生成 */
status = nc_enddef(ncid); /*定義モードを抜ける*/
if (status != NC_NOERR) handle_error(status);
Quadralay Corporation http://www.webworks.com Voice: (512) 719-3399 Fax: (512) 719-3606 sales@webworks.com |