前のページ|次のページ

FOPTNAME関数

外部ファイルについての情報アイテムの名前を返します。

カテゴリ: 外部ファイル

構文

FOPTNAME(file-id, nval)

必須引数

file-id

通常、FOPEN関数によってファイルが開かれたときに割り当てられた識別子を指定する数値変数です。

nval

情報項目数を指定する数値定数、変数または式です。

詳細

一般情報

エラーが発生すると、FOPTNAMEは空白を返します。
すべての利用可能なプラットフォーム(Windows、UNIXおよびz/OS)において、使用可能な情報項目の数、値および種類はそれぞれ異なります。

Windows: 使用可能な情報項目

次の表に、Windows動作環境下で単一のファイルまたは連結されたファイルのnval値に対応する情報項目を示します。
Windows環境のファイルに使用可能な情報項目
nval
単一ファイル
パイプファイル
連結ファイル
1
ファイル名
名前の付いていないパイプアクセスデバイス
ファイル名
2
RECFM
PROCESS
RECFM
3
LRECL
RECFM
LRECL
4
LRECL

UNIX: 使用可能な情報項目

次の表に、UNIX動作環境下で単一のファイルまたは連結されたファイルのnval値に対応する情報項目を示します。
UNIX環境のファイルに使用可能な情報項目
nval
単一ファイル
パイプファイル
連結ファイル
1
ファイル名
PIPEコマンド
ファイル名
2
所有者名
ファイルリスト
3
グループ名
所有者名
4
アクセス権限
グループ名
5
ファイルサイズ(バイト単位)
アクセス権限
6
ファイルサイズ(バイト単位)

z/OS: 使用可能な情報項目

z/OS環境で使用可能な情報項目は、その環境の構成によって異なります。z/OS環境の情報項目数の定義については、DINFO関数の表を参照してください。

例1: ファイル情報項目の取得とログへの書き込み

この例では、システムに依存する使用可能なファイル情報項目を取得して、ログに書き込みます。
%let filrf=myfile;
%let rc=%sysfunc(filename(filrf, physical-filename));
%let fid=%sysfunc(fopen(&filrf));
%let infonum=%sysfunc(foptnum(&fid));
%do j=1 %to &infonum;
   %let name=%sysfunc(foptname(&fid, &j));
   %let value=%sysfunc(finfo(&fid, &name));
   %put File attribute &name equals &value;
%end;
%let rc=%sysfunc(fclose(&fid));
%let rc=%sysfunc(filename(filrf));

例2: ファイル属性の名前および値を含むデータセットの作成

この例では、使用可能なファイル属性の名前および値を含むデータセットを作成します。
data fileatt;
   length name $ 20 value $ 40;
   drop rc fid j infonum;
   rc=filename("myfile", "physical-filename");
   fid=fopen("myfile");
   infonum=foptnum(fid);
   do j=1 to infonum;
      name=foptname(fid, j);
      value=finfo(fid, name);
      put 'File attribute ' name 
       'has a value of ' value;
      output;
   end;
   rc=filename("myfile");
run;

例3: Windowsでパイプデバイスタイプを使用時のファイル属性

次の例では、Windowsでパイプを使用時にFOPTNAME関数によって返される名前属性および値属性を含むデータセットを作成します。
data fileatt;
   filename mypipe pipe 'dir';
   fid=fopen("mypipe","s");
   /* fid should be non—zero. 0 indicates failure */
   put "File id is: " fid=;
   numopts=foptnum(fid);
   put "Number of information items should be 4; " numopts=;
   do i=1 to numopts;
      optname=foptname(fid,i);
      put i= optname=;
      optval=finfo(fid,optname);
      put optval=;
   end;
rc=fclose(fid);
run;
パイプファイルの情報を示すSASログ
NOTE:PROCEDURE PRINTTO used (Total process time): real time           0.03 seconds cpu time            0.01 seconds 6    data fileatt; 7       filename mypipe pipe 'dir'; 8       fid=fopen("mypipe","s"); 9       /* fid should be non-zero.0 indicates failure */ 10      put "File id is:" fid=; 11      numopts=foptnum(fid); 12      put "Number of information items should be 4; " numopts=; 13      do i=1 to numopts; 14         optname=foptname(fid,i); 15         put i= optname=; 16         optval=finfo(fid,optname); 17         put optval=; 18      end; 19 20   rc=fclose(fid); 21   run; File id is: fid=1 Number of information items should be 4; numopts=4 i=1 optname=Unnamed Pipe Access Device optval= i=2 optname=PROCESS optval=dir i=3 optname=RECFM optval=V i=4 optname=LRECL optval=32767 NOTE:The data set WORK.FILEATT has 1 observations and 6 variables.NOTE:DATA statement used (Total process time): real time           9.64 seconds cpu time            1.16 seconds 22   proc printto; run;

例4: UNIXでパイプデバイスタイプを使用時のファイル属性

次の例では、UNIXでパイプを使用時にFOPTNAME関数によって返されるNAME属性およびVALUE属性を含むデータセットを作成します。
data fileatt;
   length name $ 20 value $ 40;
   drop fid j infonum;
   filename mypipe pipe 'UNIX-command';
   fid=fopen("mypipe", "s");
   infonum=foptnum(fid);
   do j=1 to infonum;
      name=foptname(fid, j);
      value=finfo(fid, name);
      put 'File attribute' name 'has a value of ' value;
      output;
   end;
run;
次のステートメントはSASログ内に表示されます。
SASログ
File attribute Pipe Command has a value of UNIX-command
Unix-commandは、UNIXのコマンドまたはプログラムです。ここで出力をパイプしたり、入力を読み込みます。このコマンドまたはプログラムはPATH環境変数内で、完全修飾あるいは定義される必要があります。

関連項目:

前のページ|次のページ|ページの先頭へ