📊 Capítulo 15: I/O Streams & std::filesystem
Especialização em Sistemas com C++
🗺️ A Arquitetura Portável de Sistema de Arquivos: std::filesystem (C++17)
flowchart LR
PATH["std::filesystem::path p = 'dados/logs/app.log'"]
--> QUERY["Consultas Rápidas:\nfs::exists(p)\nfs::is_directory(p)\nfs::file_size(p)"]
PATH --> OPS["Operações de Sistema:\nfs::create_directories(p.parent_path())\nfs::copy_file(origem, destino)\nfs::remove_all(temp_dir)"]
PATH --> ITER["Iteração Recursiva:\nfor (const auto& entry : fs::recursive_directory_iterator(dir)) ⚡"]
style PATH fill:#ede7f6,stroke:#512da8,stroke-width:2px
style QUERY fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style OPS fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style ITER fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
🎯 Slide 1: std::filesystem::path
- O operador
/é sobrecarregado para compor caminhos de forma limpa e independente do SO:namespace fs = std::filesystem; fs::path config = fs::current_path() / "config" / "settings.json";
🎯 Slide 2: I/O Binário de Alta Velocidade com std::fstream
std::ofstream out("dados.bin", std::ios::binary);
int buffer[1000];
out.write(reinterpret_cast<const char*>(buffer), sizeof(buffer));
- Grava blocos brutos de memória diretamente para o disco sem overhead de parsing de strings!
🎯 Slide 3: Garantia RAII em Streams
- Streams (
std::ifstream,std::ofstream) fecham o arquivo automaticamente no destrutor quando saem de escopo, garantindo liberação imediata do descritor pelo kernel do SO!
🔗 Navegação do Capítulo 15
| 📖 Ler Conteúdo Completo | 🧠 Fazer Quiz | 💻 Ver Exemplos | 🧩 Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim