S_ISREG およびその他いくつかの共通マクロ .
<スパン
テーブルのヘッダーファイルです。#include <sys/stat.h>
#include <unistd.h>
関数: int stat(const char *file_name, struct stat *buf)を定義します。
関数の説明 ファイル情報をファイル名で取得し、bufで参照されるstat構造体に保存する関数です。
戻り値:実行に成功した場合は0、失敗した場合は-1、エラーコードはerrnoに格納される
エラーコードを表示します。
ENOENTパラメータfile_nameで指定されたファイルが存在しません。
ENOTDIRパスのディレクトリは存在するが、実際のディレクトリでない
ELOOP 開こうとするファイルのシンボリックリンクが多すぎる。最大で16個のシンボリックリンクがある。
EFAULT パラメータ buf が存在し得ないメモリ空間への無効なポインタである。
ファイルへの EACCESS アクセスが拒否された
ENOMEM コアメモリ不足
ENAMETOOLONG パラメーター file_name のパス名が長すぎます。
<スパン
<スパン
<スパン
int stat(const char *file_name,struct stat *buf)。
int fstat(int filedes,struct stat *buf)。
stat 構造体は、ファイル /usr/include/sys/stat.h で定義されています。
struct stat finfo;
stat( sFileName, &finfo );
int size = finfo.st_size;
構造体Stat {
<未定義
mode_t st_mode; /ファイル対応モード、ファイル、ディレクトリなど。
ino_t st_ino; //i-nodeのノード番号
dev_t st_dev; //デバイス番号
dev_t st_rdev; //特殊なデバイス番号
nlink_t st_nlink; //ファイルへの接続数
uid_t st_uid; //ファイルの所有者
gid_t st_gid; //ファイル所有者に対応するグループ
off_t st_size; // 共通ファイル、ファイルのバイト数に対応する。
time_t st_atime; // ファイルが最後にアクセスされた時間
time_t st_mtime; //ファイルの内容が最後に変更された時間
time_t st_ctime; //ファイルの状態(属性)が変化した時間
blksize_t st_blksize; //ファイルの内容に対応するブロックサイズ
blkcnt_t st_blocks; //ファイルの中身に対応するブロック数
};
statはどのファイルが開かれていないかを判断するために使用され、fstatはどのファイルが開かれているかを判断するために使用されます。最もよく使われる属性はst_modeです。この属性で、与えられたファイルが通常のファイルなのか、ディレクトリ、リンクなどなのかを判断することができます。これを判断するために、以下のマクロを使用することができます。
S_ISLNK(st_mode):リンクであるかどうか。
<スパン S_ISREGが通常ファイルであるかどうか。
<スパン S_ISDIR はディレクトリか?
<スパン S_ISCHR がキャラクタデバイスであるかどうか。
<スパン S_ISBLKがブロックデバイスであるかどうか
<スパン S_ISFIFOがFIFOファイルであるかどうか。
<スパン S_ISSOCK が SOCKET ファイルであるかどうか。
<スパン
<スパン
<スパン 使用方法
// 構造体を定義する
struct stat m;
// ユーザーが入力したファイル名(ディレクトリかどうかを判断するために使用される)。
char *filename;
int a;
int n = stat(filename,&m).
a = S_ISDIR(m.st_mode).
aが真であればディレクトリであり、そうでなければそうでない。
関連
-
Uncaught TypeError: document.getElementsByClassName("xxx").addEventListener is not a function.
-
com.android.tools.build:gradle:3.3.1 が見つかりませんでした。
-
PHP connect to Mysql error フェイタルエラーです。Uncaught Error: アプリケーションの未定義関数mysql_connect()への呼び出し
-
Bluetooth接続のタイムアウト現象
-
PythonのTypeError: unbound methodの問題を解決する
-
python encountered a problem: No handlers could be found for logger *.
-
Pycharm コード ドッカー コンテナ 実行 デバッグ|機械学習シリーズ
-
解決方法:コマンドが見つかりません。
-
rvm アンインストール
-
numpy.concatenate merge matrix エラー ValueError: すべての入力配列は同じ次元数でなければなりません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Build Record 2-CSS file not loaded-Solved-Resource interpreted as Stylesheet but transferred with MIME type text/plain
-
"Undefined symbols for architecture x86_64:" エラーを解決しました。
-
2値化爆弾解除の記録
-
jinja2.exceptions.TemplateNotFound: xxxx.html
-
ubuntu nohupコマンド
-
ldap_bind: 無効な認証情報 (49)
-
中に内部エラーが発生しました。「Javaツーリングの初期化」中に内部エラーが発生しました。
-
要約:ModuleNotFoundErrorを解決する。tools という名前のモジュールがない問題
-
解決済みです。GET http://localhost:8080/statics/js/jquery-3.4.1.js net::ERR_ABORTED 404
-
SQLステートメント共通エラー。"不明な列 'xxx' in 'where 節 "どのように解決するには?