cleanpath
冗長要素のないパスのコピーを作成します。
string cleanpath(char *str)
cleanpath関数は、strで指定されたパスのコピーで構成される文字列を生成します。ただし、特定の重複要素は排除されます。 特に、パス内の/./要素は削除され、/../要素は縮小されます。 パス内の/../は、シンボリック・リンクを考慮せずに縮小されます。 したがって、cleanpathが有効なパスを取得し、より短い無効なパスを返す可能性があります。
たとえば、strが/foo/../barで、/fooが/net/foo/exportへのシンボリック・リンクであった場合、barが/net/fooにのみ存在し、/に存在しない場合でも、cleanpathは文字列/barを返します。 この制限は、任意の名前の完全なシンボリック・リンク解決が不可能な起動プローブのコンテキストでcleanpathがコールされるためです。 返される文字列は、スクラッチ・メモリーから割り当てられるため、句中のみ有効です。 使用可能なスクラッチ・メモリーが不足している場合、cleanpathは実行されず、エラーが生成されます。