問題タブ [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.

0 投票する
1 に答える
1289 参照

c++ - ブーストを使用してファイルの所有者とグループを取得する

boost::filesystem を使用してファイルから所有者とグループを取得したいのですが、その方法が見つかりませんでした。

ファイルのアクセス許可を取得できますが、ファイルの所有者がわからないため、これは何の意味もありません。

posix fstat 関数を見つけましたが、C 関数ではなく、ブーストまたは別の C++ ライブラリを使用したいと思います。

0 投票する
1 に答える
883 参照

c - fstatを使用してファイルタイプを判別する

それで、私は基本的にライブラリ関数とは対照的にシステムコールの速度を比較する練習である割り当てを持っています。stdinを介してファイルから取得した文字列を並べ替えています。ファイルが通常のファイルであるか、fstatを使用していないかを判断することになっています。マニュアルページを読みましたが、それが何をするのかはわかっていますが、使い方がわかりません。

stat構造体が返されることはわかっているので、文字通り変数を作成してそのように格納できますか?元:

それはあなたが構造体を取得する方法ですか?それはどこかに返されますか?off_t st_size変数にアクセスする必要があるので、ファイルのバイト数がわかります。そして、それをintにキャストできますか?

また、どうやらst_modeフィールドを使用して、ファイルが通常であるかどうかを確認できます(マクロS_ISREGを使用)が...どうすればよいですか?それはfalseか何かのtrueを返しますか?フィールドが何であるかを教えてくれるこれらのドキュメントをすべて見つけることができるので、それは迷惑ですが、それらの使用方法はわかりません。

通常のファイルがある場合は、関数を呼び出す前にそれを保存するのに十分なメモリを割り当てることになっています。そうでない場合は、読み取り時にメモリを再割り当てします。2番目の部分は完了しましたが、fstatを正しく使用する方法がわかりません。

0 投票する
2 に答える
3766 参照

freebsd - fstat-freebsdシステムのファイル記述子の総数?

システム内のファイル記述子の現在の数を取得するにはどうすればよいですか?

私は最大値を取得する方法を知っています。

参照:

http://www.freebsd.org/cgi/man.cgi?query=fstat&apropos=0&sektion=0&manpath=FreeBSD+9.0-RELEASE&arch=default&format=html

0 投票する
1 に答える
1561 参照

c - cfstatの問題を使用してファイルサイズを比較する

keyfile2つのファイルサイズを比較する私のコードは、 >のように動作するようですsourcefile。以下のコードに欠けているものはありますか?何を変更できますか?テストに使用している2つのファイルは、3kbのキーファイルと14kbのソースファイルです。これらのファイルは、以下に示す最後のifステートメントをアクティブにする必要があります。

0 投票する
1 に答える
1022 参照

c - より多くのファイルをリンクした後でもfstat()st_nlink = 1

出力:nlinks before = 1 nlinks after = 1

ファイルへのリンクが少なくとも3つあるのに、st_nlinkが常に1であるのはなぜですか?また、lstat代わりに使用すると、3つのst_nlinksが得られます。なんで?

0 投票する
1 に答える
336 参照

c - fstat を呼び出す前に fsync を呼び出す理由

fsyncへの呼び出しの前にへの呼び出しを発行しfstatて、ターゲット ファイルのファイルサイズを決定するレガシー コードがあります。(具体的には、コードは stat 構造体から st_size にのみアクセスしています。)

ドキュメントを見て、これは必要な電話だとは思いませんが、専門家の意見が欲しかったのです。

0 投票する
1 に答える
662 参照

c - 古いglibcを使用したLinuxでのファイル変更の監視

ファイル記述子を使用して、通常のファイルのイベントを監視する必要があります。CentOS4.1とカーネルバージョン2.6.18.128を搭載したマシンで作業しています。

を使用して通常のファイルを監視できないことに気付いた後epoll、このタスクはを使用して実行できることがわかりましたinotify。ただし、必要なライブラリインターフェイスinotifyがバージョン2.4でglibcに追加され、私のマシンにはバージョン2.3.4がインストールされていることを他の場所で読みました。したがって、私のカーネルはglibcではなくinotifyをサポートしています。残念ながら、プロジェクトの他の特定の部分が破損するため、glibcを新しいバージョンに更新することはできません。

だから私の質問は:

  1. inotify通常のファイルの監視に引き続き使用できますか?新しいバージョンのglibcを入手して、ローカルフォルダー(コードに対して)に配置し、Makefileにパスを含めて、に関連付けられた呼び出しを使用できますinotifyか?もしそうなら、私はどのような問題に遭遇する可能性がありますか?
  2. 別の方法として、構造体のメンバーをfstat追跡することにより、を使用することもできます。このルートを取ることに対する警告はありますか?st_mtimestruct stat

私の質問がこれらの概念についての理解の欠如を明らかにした場合、私がそれらを使い始めたばかりなので、私に耐えてください。

0 投票する
1 に答える
7917 参照

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() が間違って呼び出され、ファイルに影響を与えていました。

0 投票する
2 に答える
1002 参照

c++ - zipファイルまたは圧縮ファイルが存在するかどうかを確認する方法は?

ファイルが存在するかどうかわからない場合.存在する場合は、そのファイルの内容に応じて何かを行います.ファイルは.txtまたは.gz形式である可能性があり、ファイルが存在しない場合もあります. 以下は私のコードです:

hello.abc などの必須ファイルと同じ名前のファイルをチェックしたいのですが、チェックしたいファイルは hello.abc または hello.gz であるか、存在しないことさえあります。ファイル hello.txt または hello.gz がまったく存在しないときにエラーが発生しました。これを解決するにはどうすればよいですか?