次のいずれかの方法でファイルを開くと、fopen
は正常に動作します。次のように私は、ディレクトリの名前の前に(Windowsの場合や「\」)スラッシュ「/」置く場合ディレクトリの名前の前にスラッシュ '/'を置くとfopenがCで失敗する
fopen("file.txt", "w");
fopen("/file.txt", "w");
fopen("dir/file.txt", "w");
、そしてfopen
は(NULLを返す)は失敗します。
fopen("/dir/file.txt", "w");
Windows(MSVC)とLinuxの両方で発生します。その理由は何ですか?私は開始スラッシュ '/'を削除する必要がありますか?
あなたはパスの概念を理解していますか?特に*絶対パスと相対パスの違いは? –
シェルで "ls"または "dir"で使用しようとしているパスをテストすると、すぐにあなたの間違いが現在のディレクトリである –
file.txt == file.txtになります。 /file.txt == file.txtは、システムのルートディレクトリにあります。彼らは明らかに同じではありません。 – PSkocik