Mount_nullfs の FreeBSD マニュアルページの「getcwd 関数は正常に動作します」というフレーズはどういう意味ですか?

Mount_nullfs の FreeBSD マニュアルページの「getcwd 関数は正常に動作します」というフレーズはどういう意味ですか?

FreeBSDではman mount_nullfs指摘した:

ファイルシステムの仮想コピーとシンボリックリンクの主な違いは次のとおりです。これgetcwd(3)機能はうまくいきます。元のファイルシステムに影響を与えることなく、仮想コピーに他のファイルシステムをマウントできます。仮想コピーのその他のデバイス番号は、次のコマンドで返されます。stat(2)ただし、他の点ではソースと区別することはできません。

この詩の全体的な意味/意味は何ですか?

ベストアンサー1

ファイルシステムの仮想コピーとシンボリックリンクの主な違いは次のとおりです。機能はgetcwd(3)うまくいきます。仮想コピーでは

getcwdシンボルでリンクされたディレクトリの動作は、かなりよく知られているトラップです。高度なUNIXプログラミング例えば(参照この問題注):シンボリックリンクの場合は対称ではありませんchdirgetcwd以下を使用してディレクトリを変更すると予想できます。chdir、指定されたディレクトリに移動し、次を使用して現在のディレクトリを検索します。getcwd、同じ値を返しますが、プロセスがシンボリックリンクを含むパスにディレクトリを変更することはありません。getcwdすべてのシンボリックリンクを逆参照した後に得られたパスが返されます。ディレクトリを親ディレクトリに変更すると、シンボリックリンクを含むパスと参照解除されたパスのコンポーネント数が異なると、意図しない結果が生じる可能性があります。

元のファイルシステムに影響を与えることなく、他のファイルシステムを仮想コピーにマウントできます。

スティーブンの話を続けるはい/tmp/b、影響を与えずにサブディレクトリに別のファイルシステムをマウントすることができ、サブディレクトリにファイルシステムをマウントする/some/dirと、/tmp/aそのファイルシステムも/some/dir

仮想コピーの別のデバイス番号を返しますstat(2)が、それ以外は元のデバイスと区別することはできません。

つまり、statコピーまたはその下のすべてのファイルを実行すると、元とは異なるデバイス番号が返されますが、これが唯一の違いです。それ以外の場合は、同じ情報が返されますstat("/tmp/b/c", &buf)stat("/some/dir/c", &buf)

おすすめ記事