_rtl_chmod, _wrtl_chmod
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 のみ |