問題タブ [fstat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ブーストを使用してファイルの所有者とグループを取得する
boost::filesystem を使用してファイルから所有者とグループを取得したいのですが、その方法が見つかりませんでした。
ファイルのアクセス許可を取得できますが、ファイルの所有者がわからないため、これは何の意味もありません。
posix fstat 関数を見つけましたが、C 関数ではなく、ブーストまたは別の C++ ライブラリを使用したいと思います。
c - fstatを使用してファイルタイプを判別する
それで、私は基本的にライブラリ関数とは対照的にシステムコールの速度を比較する練習である割り当てを持っています。stdinを介してファイルから取得した文字列を並べ替えています。ファイルが通常のファイルであるか、fstatを使用していないかを判断することになっています。マニュアルページを読みましたが、それが何をするのかはわかっていますが、使い方がわかりません。
stat構造体が返されることはわかっているので、文字通り変数を作成してそのように格納できますか?元:
それはあなたが構造体を取得する方法ですか?それはどこかに返されますか?off_t st_size変数にアクセスする必要があるので、ファイルのバイト数がわかります。そして、それをintにキャストできますか?
また、どうやらst_modeフィールドを使用して、ファイルが通常であるかどうかを確認できます(マクロS_ISREGを使用)が...どうすればよいですか?それはfalseか何かのtrueを返しますか?フィールドが何であるかを教えてくれるこれらのドキュメントをすべて見つけることができるので、それは迷惑ですが、それらの使用方法はわかりません。
通常のファイルがある場合は、関数を呼び出す前にそれを保存するのに十分なメモリを割り当てることになっています。そうでない場合は、読み取り時にメモリを再割り当てします。2番目の部分は完了しましたが、fstatを正しく使用する方法がわかりません。
freebsd - fstat-freebsdシステムのファイル記述子の総数?
システム内のファイル記述子の現在の数を取得するにはどうすればよいですか?
私は最大値を取得する方法を知っています。
参照:
c - cfstatの問題を使用してファイルサイズを比較する
keyfile
2つのファイルサイズを比較する私のコードは、 >のように動作するようですsourcefile
。以下のコードに欠けているものはありますか?何を変更できますか?テストに使用している2つのファイルは、3kbのキーファイルと14kbのソースファイルです。これらのファイルは、以下に示す最後のif
ステートメントをアクティブにする必要があります。
c - より多くのファイルをリンクした後でもfstat()st_nlink = 1
出力:nlinks before = 1 nlinks after = 1
ファイルへのリンクが少なくとも3つあるのに、st_nlinkが常に1であるのはなぜですか?また、lstat
代わりに使用すると、3つのst_nlinksが得られます。なんで?
c - fstat を呼び出す前に fsync を呼び出す理由
fsync
への呼び出しの前にへの呼び出しを発行しfstat
て、ターゲット ファイルのファイルサイズを決定するレガシー コードがあります。(具体的には、コードは stat 構造体から st_size にのみアクセスしています。)
ドキュメントを見て、これは必要な電話だとは思いませんが、専門家の意見が欲しかったのです。
c - 古いglibcを使用したLinuxでのファイル変更の監視
ファイル記述子を使用して、通常のファイルのイベントを監視する必要があります。CentOS4.1とカーネルバージョン2.6.18.128を搭載したマシンで作業しています。
を使用して通常のファイルを監視できないことに気付いた後epoll
、このタスクはを使用して実行できることがわかりましたinotify
。ただし、必要なライブラリインターフェイスinotify
がバージョン2.4でglibcに追加され、私のマシンにはバージョン2.3.4がインストールされていることを他の場所で読みました。したがって、私のカーネルはglibcではなくinotifyをサポートしています。残念ながら、プロジェクトの他の特定の部分が破損するため、glibcを新しいバージョンに更新することはできません。
だから私の質問は:
inotify
通常のファイルの監視に引き続き使用できますか?新しいバージョンのglibcを入手して、ローカルフォルダー(コードに対して)に配置し、Makefileにパスを含めて、に関連付けられた呼び出しを使用できますinotify
か?もしそうなら、私はどのような問題に遭遇する可能性がありますか?- 別の方法として、構造体のメンバーを
fstat
追跡することにより、を使用することもできます。このルートを取ることに対する警告はありますか?st_mtime
struct stat
私の質問がこれらの概念についての理解の欠如を明らかにした場合、私がそれらを使い始めたばかりなので、私に耐えてください。
c - fstat が 0 のファイル サイズを返す
私は fstat を理解していると思っていましたが、間違っていました。
ファイルのサイズを知り、ファイルから読み取る必要があります。
fileN
ファイルのパスとファイルの名前があります。このように見えます。0.txt
fd = open(fileN, "r");
fstat を使用するには、なぜ使用する必要があるのですか? ファイルを2回開いているような気がします。
fileStat が構造体の場合、独自の構造体を作成するときに、fileStat.st_size
代わりにを使用するのはなぜですか? fileStat->st_size
例: myString->characters
;
そして、実行時に上記のコードが 0 を出力するのはなぜprintf
ですか? はい、ファイルのサイズは 0 より大きく、正しいファイル名とパスがあります。
上記のすべてのコードは、グーグル検索され、私の試行錯誤の実装と混合されたコードの私の解釈です。だからこそ、たくさんの質問があります。
編集:解決策: open() が間違って呼び出され、ファイルに影響を与えていました。
c++ - zipファイルまたは圧縮ファイルが存在するかどうかを確認する方法は?
ファイルが存在するかどうかわからない場合.存在する場合は、そのファイルの内容に応じて何かを行います.ファイルは.txtまたは.gz形式である可能性があり、ファイルが存在しない場合もあります. 以下は私のコードです:
hello.abc などの必須ファイルと同じ名前のファイルをチェックしたいのですが、チェックしたいファイルは hello.abc または hello.gz であるか、存在しないことさえあります。ファイル hello.txt または hello.gz がまったく存在しないときにエラーが発生しました。これを解決するにはどうすればよいですか?