Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Slackware 12.2 + Lxde
Por V4lter
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Manipulação de arquivos em C++
Linux user
matheusslima
13/11/2008
Neste breve artigo faço uma apresentação do conceito de arquivos, como o sistema operacional os encara, em especial em sistemas Linux e como é sua manipulação em C++, com códigos de exemplo de leitura e/ou gravação dos mesmos.
Por: Matheus Santana Lima
[ Hits: 48998 ]
Conceito: 10.0   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

O que são arquivos?

Arquivo é um recurso que o sistema operacional promove e que as linguagens de programação tem acesso. É uma abstração que simplifica a criação e manipulação de dispositivos de entrada e saída de dados, não apenas restringindo a arquivos físicos gravados no disco rígido, mas também dispositivos como o teclado e o monitor.

Quando criamos um arquivo, seja através de uma linguagem de programação ou através da interface de usuário, na verdade não estamos propriamente criando o arquivo, mas sim delegando esta tarefa ao Sistema Operacional (Linux, Windows, Mac), que se encarrega de fazer toda a verificação de permissões do usuário que está executando esta tarefa e atribuindo às descrições do arquivo informações como: usuário dono, data de criação, tipo, tamanho, data de acesso, modificação, dentre outras.

Todo sistema operacional trabalha em cima de um sistema de arquivos, que por sua vez é um dos principais responsáveis na criação e manipulação dos arquivos em dispositivos físicos.

Cada partição pode receber um sistema de arquivos, dentre os mais conhecidos estão: FAT 16, FAT 32, NTFS (usados pelo Windows), Ext2, Ext3, ReiserFS, XFS (usados pelo Linux e por outros Unix-like).

Os arquivos são divididos em duas subcategorias:
  • Binários - Arquivos interpretados apenas pelo SO. Contém apenas 0's e 1's. Programas compilados e bibliotecas são exemplos de arquivos binários;
  • Textos - São arquivos que contém informações, não apenas se restringindo a texto propriamente dito, mas também a arquivos de mídia por exemplo.

Alguns sistemas operacionais, como o Linux, tratam todo o sistema como uma grande gama de arquivos; processos, diretórios, usuários e dispositivos, todos são representados por arquivos e cabe ao SO decidir que tipo é cada arquivo, isto é feito através da leitura do cabeçalho dos mesmos, assim, ao verificar através desta leitura, se o arquivo em questão é uma imagem por exemplo, o SO permite que um programa de imagens "abra" este arquivo e não permita que um programa de reprodução de música seja ativado, pois a estrutura de um arquivo que seja uma imagem é totalmente diferente de um arquivo de áudio.

Observe que a verificação de que tipo é o arquivo se dá na leitura do cabeçalho do mesmo, e não na extensão que este possui. Desta forma podemos encontrar arquivos sem extensão no Linux, o que não impede sua manipulação. No Windows o SO reconhece o tipo de arquivo a partir da extensão (.txt, .jpg, .exe, ...) do mesmo.

Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada
Nenhum artigo encontrado.

Comentários
[1] Comentário enviado por marcrock em 13/11/2008 - 15:21h:

Muito bom cara !!!!
Você foi bem objetivo, mesmo eu sem grandes conhecimentos de C++ entendi tudo !

Até mais .


[2] Comentário enviado por vsenna em 17/11/2008 - 02:25h:

Muito bom seu texto, está escrito de forma bem clara!

[]'s

[3] Comentário enviado por andrezc em 11/04/2010 - 19:35h:

Há alguns erros. Por exemplo, no primeiro código faltou uma biblioteca, a cstring, para usar a função strcpy(). E você usou bibliotecas da linguagem C, como stdio.h. O correto seria:

#include <cstdio>

mesma coisa com

#include <fstream.h>

o correto seria:

#include <fstream>


André
[]'s

[4] Comentário enviado por cibele_fni@ em 16/06/2011 - 12:36h:

como faço um programa em c++ que verifique quais as letras do alfabeto estao faltando em um texto por favome ajude envie para:cibele_fni@hotmail.com

[5] Comentário enviado por DarthVictor em 26/06/2011 - 13:56h:

Muito bom. Apesar de sempre ter usado #include <cstdlib.h>, fprinf, fscanf, etc; em C++. Gosto mais das funções em C e muitos programas tem de ser escritos orientado a objetos.


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.