あなたはどのようにして一般にLinux OSでファイルを削除しますか?私はunlink
関数呼び出しを使用することを考えていますが、C++標準はファイルの削除操作についての言及がなく、システムに依存しているので、より良い考えがあるのだろうかと思います。UNIXのC++でファイルを削除する
20
A
答えて
27
Yep - C++標準ではこのようなことがOSに任されているので、Linux(またはPOSIXシステム)を使用している場合はunlink()
が得られます。
C標準では、試してみることができますが、behavior is unspecifiedが「通常のファイル」以外のものであることを念頭に置いているため、プラットフォーム固有のファイルシステムの詳細(リンク、など)。
もっと高いレベル、より堅牢で可搬性の高いものをお望みなら、Boost Filesystemをチェックしてください。
1
unlinkは正しい方法です。
13
標準には、removeという機能があります。私はそれのためにboost.filesystem
を好むだろうが(もし私がすでにブーストを使用していれば)。
#include <cstdio>
int main() {
std::remove("/home/js/file.txt");
}
2
unlink()
POSIX規格によって定義され、したがって任意のPOSIX互換システムで、あまりにも互換性をPOSIXされないかなりの数の上に存在します。
0
最近のカーネルでもunlinkat
が提供されています。この機能は、ディレクトリ自体にファイル記述子がある場合、unlink
より高速です。
関連する問題
- 1. Unixシェルスクリプト削除 - ファイル
- 2. Java削除ファイルunix way(リンク解除ヘッダ)
- 3. UNIXファイル名の削除/変更
- 4. UNIXで複数のファイルやディレクトリを削除するには
- 5. Unixで自分のファイルだけを削除する
- 6. UNIXスクリプトでSCPバナーを削除する
- 7. unixでXファイルを削除するには
- 8. unixでファイルをマージして削除するには?
- 9. unixのファイルから特定の行を削除するには?
- 10. C++でのファイル削除
- 11. ファイルから重複する行を削除するunixツール
- 12. Unixのリモートサーバからファイルを削除する
- 13. ファイル内のストップワードを削除するUnixスクリプトまたはパーサー
- 14. Unixのキャリッジリターンを削除する
- 15. UNIX - 特定の行を削除する
- 16. 鉛白スペースの削除 - UNIX
- 17. UNIXのファイル名から日付を削除します
- 18. UNIXでスクリプトを使用して特定のパターンのファイルを削除する
- 19. ファイルを削除するが、フォルダは削除しないC#
- 20. perlを使わずにUnixファイルのフィールドで改行を削除する方法
- 21. bash/shell/unixの指定された範囲のファイルを削除
- 22. HTMLエンコードされたUNIXパスからのファイル名の削除
- 23. unixで同時にファイルを削除してログに記録する
- 24. 大規模なunixファイルの行内でCRLFを削除します。
- 25. Unixのファイルから行を見つけて削除するには?
- 26. Cのファイルから文字を削除
- 27. 同じファイル名でファイル拡張子が異なる重複ファイルを削除するUnixシェルスクリプト
- 28. ファイルをファイル名で削除してFTPでファイルを削除する
- 29. ExtAudioFileCreateWithURLで作成したファイルをC++で削除するには?
- 30. sasで削除する、バックアップからファイルを削除する
私はすべてのコード移植性の問題でremove()を使用しています。 –
削除は実際にはPOSIXでは非ディレクトリのunlinkと同等であると指定されています。 – Random832