getftime,setftime
io.h:インデックス への移動
ヘッダーファイル
io.h
カテゴリ
入出力ルーチン
プロトタイプ
int getftime(int handle, struct ftime *ftimep);
int setftime(int handle, struct ftime *ftimep);
説明
ファイル日時を取得および設定します。
getftime は,オープンハンドルに関連付けられたディスクファイルのファイル日時を取得します。ftimep が指す ftime 構造体には,ファイルの時刻および日付が格納されます。
setftime は,オープンハンドルに関連付けられたディスクファイルのファイル日時を,ftimep が指す ftime 構造体の日付と時刻に設定します。setftime を呼び出した後で,ファイルへの書き込みを行ってはなりません。書き込みを行うと,変更された情報が失われます。
setftime を使用するには,ファイルが書き込み用に開かれている必要があります。読み出し専用アクセスで開かれている場合は,EACCS エラーが発生します。
ftime 構造体は,次のように定義されています。
struct ftime {
unsigned ft_tsec: 5; /* 2 秒 */
unsigned ft_min: 6; /* 分 */
unsigned ft_hour: 5; /* 時間 */
unsigned ft_day: 5; /* 日 */
unsigned ft_month: 4; /* 月 */
unsigned ft_year: 7; /* 年 - 1980*/
};
戻り値
成功した場合,getftime と setftime は 0 を返します。
エラーの場合は -1 が返され,グローバル変数 errno に次のいずれかの値が設定されます。
EACCES |
アクセスが許可されない |
EBADF |
不正なファイル番号 |
EINVFNC |
無効なファンクション番号 |
例
#include <stdio.h>
#include <io.h>
int main(void)
{
FILE *stream;
std::ftime ft;
if ((stream = fopen("TEST.$$$",
"wt")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
getftime(fileno(stream), &ft);
printf("File time: %u:%u:%u\n",
ft.ft_hour, ft.ft_min,
ft.ft_tsec * 2);
printf("File date: %u/%u/%u\n",
ft.ft_month, ft.ft_day,
ft.ft_year+1980);
fclose(stream);
return 0;
}