Transcrição do áudio
É coleguinha, vamos falar sobre dispositivos de entrada e saída. Bom, nós conhecemos eles aqui no Linux como arquivos especiais de blocos e de carácter. Tá no livro do Tanebo, tá na internet, só não sabe quem não lê. Todo dispositivo de entrada e saída no Linux, ele é mapeado no sistema de arquivos como um arquivo. Puxa, no vídeo anterior você ficou sabendo que diretório não existe, né? Como uma pasta. Agora você descobre que os dispositivos de entrada e saída estão mapeados no sistema de arquivos como se fosse no disco. Que coisa esquisita, né? É porque você do mundo Windows tem que entender, você da pasta, que o seguinte, a árvore do sistema de arquivos do Windows é a realidade. É a realidade do que tem no disco. No Linux, o sistema de arquivos, ele é todo virtual. Então, ele não existe como você o enxerga. Então, dá margem a você criar, por exemplo, múltiplas soluções que você não encontra no mundo Windows. Como, por exemplo, o teu monte de discos sendo uma coisa só. Eu não estou falando RAID. Eu vou repetir, um monte de discos sendo um disco só. Mas não... Não é RAID. É LVM. Então, o mundo Linux é para servidores, é para coisa parruda, é para coisa top. Esse é o mundo Linux. De programador para programador. E esses arquivos especiais de bloco e carácter, exemplo, meu teclado é um dispositivo de carácter, meu mouse é um dispositivo especial de carácter. Qual a diferença entre eles? Na visão do sistema operacional, nenhuma. Esses dois dispositivos de carácter que estão aqui na minha mesa, para o sistema operacional, não há nenhuma diferença entre eles. A não ser a porta que ele está conectado. A USB 1, a USB 0. Só isso. Só isso. Ai, caramba! E dispositivo de bloco? Um pendrive. É um dispositivo de bloco. Um HD é um dispositivo de bloco. No caso, SSD hoje em dia. Por isso que você consegue instalar um sistema operacional e um pendrive. Porque ele é encarado como um sistema de bloco. Ele pode alocar arquivos como um sistema operacional. Para você ter uma noção de como o Linux é poderoso. Dispositivos de bloco, conforme a teoria descrita, permite que seja feita escrita ou leitura em blocos de byte. Se é dispositivo de bloco, é de blocos de byte. 512. Porque você tem um arquivo de 1 giga. Pensa você escrever no seu HD, byte a byte e validar byte a byte. É escrever um byte e validar um byte. Escrever um byte e validar um byte. Não dá. Por isso que existem os sistemas de bloco com write de 512 e o read de 512. Ele escreve 512 bytes, valida. Escreve mais 512 bytes, valida. Sempre assim. E aí fica mais rápido. Já o teclado não. Quando eu pressiono uma tecla, ele realmente escreve um byte e valida. Porque o meu teclado já é de... Dispositivo especial de carácter. Não é isso? Legal. Nesse próximo programa, é o clássico listar, que nós vimos até então. Beleza? E com um teste. Se for um dispositivo especial de bloco, eu estou testando com isBlockFile. Se for um dispositivo especial de carácter, isCharacterFile. E a leitura... A leitura pode ser feita sem nenhuma recursividade, pois todos esses arquivos estão em barra dev. Todos eles estão em barra dev. Então, naturalmente, eu já separei o código. Já organizei aqui. Estão aqui em barra dev. Aqui eu faço a interação, conforme já expliquei o que é um iterator. Tem um if aqui mágico, para verificar se é de bloco ou se é de... De carácter. E um continue. E ele só vai escrever se for um desses dois dispositivos. Deixa eu ver se o cout está corretamente. O std endline, ok. Tudo correto. Ctrl x. Legal. Então, eu vou precisar de recompilar. Eita! Tem alguma cagadinha, então, aqui. Vamos lá. O for. Aqui. Continue. O if. Aqui. Deixa eu ver se não tem nenhum carácter especial maluco. Galera, puta que pariu. Olha só, hein, bicho. Cara, é aquele negócio. Eu sempre falo que essa coisa vai acontecer com aluno que copia e cola. Eu copiei, colei e deu merda, hein. Tá vendo? Isso aqui, você não enxerga isso. Olha só. Tá aqui, ó. Tá aqui. Mas tem uma técnicazinha que eu sempre falo para os meus alunos. Quando a gente copia e cola, principalmente coisas de PDF, que são geradas a partir de Word, pode vir os caracteres malucos por causa do estilo do Word. E olha só, cara, aqui, ó. Tá vendo aqui? Essa é a quebra natural, ó. Quebra natural de mistring, quebra natural de mistring, natural de mistring, natural de mistring, natural de mistring. Legal? Quebra natural de mistring, quebra natural de mistring. Aqui também. Aí, de repente, isso aqui, tá vendo? Isso aqui. Isso aqui cagou tudo. Aqui, ó. Aqui, ó. Tá vendo? Então, tem que remover isso aqui, cara. Bom, vamos lá. É o copiar e colar, né, cara? Vamos lá, galera. Olha só. Ó. Limpei, ó. O Ctrl-C, Ctrl-V. Foi até bom que isso aconteceu com você, porque muita gente fala, ah, mas eu copiei e colei o código. Cara, pode dar problema, porque eu estou usando o terminal, né? Ah, vamos lá, isso aqui. Opa, digita de novo isso, cara. É para você compilar, bicho. É o G++. Olha lá, ó. Foi bom o que aconteceu, cara. Ponto barra, para você ver aí, né? Aqui, ele listou todos os dispositivos, ó. Dispositivo especial de caractere, de caractere, de caractere, de caractere. São todos dispositivos. Dispositivos especiais de caractere. Ó, o que é isso aqui? O que é isso aqui? Eu desconheço, hein? Puta merda, vou ter que ver isso aqui, hein? Coleguinha. Ele escreveu todos de caractere? Deixa eu ver meu código. Olha só. Cadê os dispositivos de bloco? Deveria ter aqui. Aqui, ó. Pô, eu estava ficando doido, meu. Aqui, ó. Aê, coleguinha, que está aqui, ó. É que é quase tudo de caractere. Isso aqui é o disco, né? Se eu colocar um pendrive, vai aparecer o pendrive também. Legal. Não tem nada errado, não. É isso aí. Até o próximo vídeo. Até mais. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau. Tchau.