標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
POSIX.1 |
両方 |
#define _POSIX_SOURCE
#include <sys/stat.h>
int fstat(int fildes, struct stat *info);
z/OS UNIX の大規模ファイルのサポート: AMODE 64 C/C++ アプリケーションの場合は、z/OS UNIX の大規模ファイルが自動的にサポートされます。AMODE 31 C/C++ アプリケーションは、オプション LANGLVL(LONGLONG) を指定してコンパイルされなければなりません。また、ヘッダーがインクルードされる前に _LARGE_FILES フィーチャー・テスト・マクロを定義して、2 GB のサイズより大きい z/OS UNIX ファイルをこの関数が操作できるようにしなければなりません。ファイル・サイズとオフセット・フィールドは、63 ビットの幅に拡張されます。したがって、_LARGE_FILES フィーチャー・テスト・マクロの定義も行うには、ファイルを操作する他のいずれかの関数が必要です。
fstat() は、正常終了時には 0 を戻します。
ファイル・サイズ (バイト数) またはファイルの割り振られたブロックの数、 またはファイル・シリアル番号を、info が指す構造体に正しく表すことが できません。
⁄* CELEBF47
This example gets status information for the file called temp.file.
*⁄
#define _POSIX_SOURCE
#include <fcntl.h>
#include <sys⁄types.h>
#include <sys⁄stat.h>
#include <unistd.h>
#undef _POSIX_SOURCE
#include <stdio.h>
#include <time.h>
main() {
char fn[]="temp.file";
struct stat info;
int fd;
if ((fd = creat(fn, S_IWUSR)) < 0)
perror("creat() error");
else {
if (fstat(fd, &info) != 0)
perror("fstat() error");
else {
puts("fstat() returned:");
printf(" inode: %d¥n", (int) info.st_ino);
printf(" dev id: %d¥n", (int) info.st_dev);
printf(" mode: %08x¥n", info.st_mode);
printf(" links: %d¥n", info.st_nlink);
printf(" uid: %d¥n", (int) info.st_uid);
printf(" gid: %d¥n", (int) info.st_gid);
printf("created: %s", ctime(&info.st_createtime));
}
close(fd);
unlink(fn);
}
}
fstat() returned:
inode: 3057
dev id: 1
mode: 03000080
links: 1
uid: 25
gid: 500
created: Fri Jun 16 16:03:16 2006