私は、マウントポイントを決定したい任意のファイルを持っています。 「通常の」Linuxマウントポイントに加えて、次のマウントポイントを持つ/mnt/bar/foo.txtとしましょう:CでLinux上の特定のファイルのマウントパスを調べるにはどうすればよいですか?
[デバイスがマウントされている] - >/mnt/bar [いくつかのデバイスが]にマウントされました - >/mnt/other
私はstat()とstatvfs()を見てきました。 statvfs()は私にファイルシステムIDを与えることができ、statは私にそのデバイスのIDを与えることができますが、これらのどちらもマウントポイントに本当に関連付けることはできません。
私は、任意のファイルに対してreadlink()を呼び出してから、/ proc/mountsを読み込み、ファイル名に最も近いパスを調べることを考えています。これは良いアプローチですか、それとも素晴らしいlibc関数がありますか?
http://unix.stackexchange.com/questions/90252/how-to-get-mount-point-of-filesystem-containing-given-file – staringlizard
該当しません。これはLinuxのユーティリティー・プログラムを使用していないC言語で行っていますが、これらのプログラムを呼び出すために/ execまたはsystem()をforkするつもりはありません。私はこれらのプログラムのソースコードを見ることができます。 – Maxthecat