_rtl_chmod, _wrtl_chmod

提供: RAD Studio
移動先: 案内検索

io.h:インデックス への移動


ヘッダーファイル

io.h

カテゴリ

入出力ルーチン

プロトタイプ

int _rtl_chmod(const char *path, int func [, int attrib]);

int _wrtl_chmod(const wchar_t *path, int func, ... );

説明

ファイル属性を取得または設定します。

メモ:  _chmod は使用されなくなり,この _rtl_chmod 関数に置き換えられました。

_rtl_chmod は,ファイル属性の取得と設定の両方に使用できます。func が 0 の場合,_rtl_chmod はファイルの現在の属性を返します。func が 1 の場合は,属性が attrib に設定されます。

attrib は,次のシンボル定数の 1 つです(dos.h で定義)。

FA_RDONLY

読み出し専用属性

FA_HIDDEN

非表示ファイル

FA_SYSTEM

システムファイル

FA_LABEL

ボリュームラベル

FA_DIREC

ディレクトリ

FA_ARCH

アーカイブ



戻り値

成功した場合,_rtl_chmod はファイル属性ワードを返します。

エラーが発生した場合は値 -1 を返し,グローバル変数 errno を次のいずれかの値に設定します。

ENOENT

パスまたはファイル名が見つからない

EACCES

アクセスが許可されない





 #include <errno.h>
 #include <stdio.h>
 #include <dir.h>
 #include <io.h>
 int get_file_attrib(char *filename);
 int main(void)
 {
   char filename[128];
   int attrib;
   printf("Enter a filename:");
   scanf("%s", filename);
   attrib = get_file_attrib(filename);
   if (attrib == -1)
      switch(errno)
      {
         case ENOENT : printf("Path or file not found.\n");
                       break;
         case EACCES : printf("Permission denied.\n");
                       break;
         default:      printf("Error number: %d", errno);
                       break;
      }
   else
      {
         if (attrib & FA_RDONLY)
            printf("%s is read-only.\n", filename);
         if (attrib & FA_HIDDEN)
            printf("%s is hidden.\n", filename);
         if (attrib & FA_SYSTEM)
            printf("%s is a system file.\n", filename);
         if (attrib & FA_DIREC)
            printf("%s is a directory.\n", filename);
         if (attrib & FA_ARCH)
            printf("%s is an archive file.\n", filename);
      }
   return 0;
 }
 /* DOS ファイルの属性を返します */
 int get_file_attrib(char *filename)
 {
    return(_rtl_chmod(filename, 0));
 }



移植性



POSIX Win32 ANSI C ANSI C++

_rtl_chmod

+

_wrtl_chmod

NT のみ