0

Linux 上の C++ で、楽しみのために独自のスクリプト言語を構築しています (そうです、これを行うことの難しさは承知しています)。このスクリプト言語には、インタープリター パス ステージに相対ファイル名を含めるためのインポート メカニズムがあります。

どれが/home/michael/foo/barロード../bar/bazされるかなどをロードする可能性があります../foo/baz。私が得る問題は、次のようなファイル名をロードする必要があることです:(/home/michael/foo/../bar/../foo/baz現在のディレクトリに再帰的に追加された相対ファイル名)。これはエラー出力で非常にばかげているように見えます。非常に非効率的であることは言うまでもなく、後で他の問題を引き起こすと思います。

(独自のファイル名パーサーを作成する以外に) ファイル名を「最適化」または「圧縮」して、ロードするだけで済むようにするにはどうすればよい/home/michael/foo/bazですか?

私はライブラリの使用を嫌いではありませんが、可能であれば POSIX/GNU C ライブラリ/拡張機能または Boost を使用することを好みます。何を検索したらいいのかわからないだけかもしれませんが。

4

2 に答える 2