これは通常どのように行われるかです。これはC++の豊富なstd::string
クラスのC言語の熊であったかもしれませんが、これは納得のいくものになります。ブーストも必要ありません。これは、入門C++のコースでの典型的な宿題のようになります。これは、このような非問題です
std::string s=getenv("PATH");
const char sep=':'; // Or use ';', if you feel like it.
auto b=s.begin(), e=s.end();
while (b != e)
{
if (*b == sep)
{
++b;
continue;
}
auto p=b;
b=std::find(b, e, sep);
auto check=std::string(p, b) + "/" + filename;
if (access(filename.c_str(), X_OK) == 0)
{
// Found it. Insert code here.
}
}
、それはおそらく、どこか、いくつかのライブラリ関数を見つけようとし、その後、これをノックアウトする速くていただろうそれは同じことをします。
さて、最終的には、あなたがしているシェルの特性を考慮する必要があるでしょう。なぜなら、そのシェル* boggle * –