うまくいけば、これは簡単に行うことができます。Windows と Linux で実行する必要があるプログラムを C で作成しています。Linux では問題なく動作しますが、Windows (Cygwin 経由) では、環境変数のパスにスラッシュではなくバックスラッシュが含まれているため、失敗します。これらを置き換える方法はありますか?私は次のことを試しましたが、おそらくバックスラッシュが次の文字をエスケープしていると思われるため、何も変わりませんでした。これが私が試したことです:
char* fixPath(char *env)
{
char *val[100];
strcpy(val, getenv(env));
int index = 0;
while(val[index])
{
if(val[index] == '\\')
val[index] = '/';
else
index++;
}
printf("\n***%s",val);
return val;
};
int main(int argc, char *argv[])
{
char *test1;
test1 = fixPath("SERVER1");
printf("\n*****%s",test1);
...
}
これを行う正しい方法は何ですか?