domingo, 27 de setembro de 2009

Curso e C - Aula 5: Arquivos

Hoje vou "esticar" um pouco mais o assunto mas semana que vem piora! Estou brincando, vamos lá que tem muito o que falar .. fiquem tranqüilos, tudo é normal e o aprendizado sempre faz parte de uma fase, depois as coisas vão se encaixando e fica tudo mais tranqüilo, todos conseguirão superar.

Extensões de arquivo

Existe uma convenção usada pelos compiladores para denominarmos os programas escritos em C e todos elementos que se referem ao conjunto programa. As denominações encontradas são:

O fonte do programa: nome_do_programa.c
Arquivo Objeto: nome_do_programa.o
Arquivo no formato executável: nome_do_programa ou nome_do_programa.exe (não Linux)
Arquivo de cabeçalho: Nome_da_Biblioteca.h
Biblioteca: libNome_da_Biblioteca.so libNome_da_Biblioteca.a

O final do arquivo após o ponto (c,o,a,so ou nada) identifica o tipo de arquivo para o compilador. Ele usa isso para gerar o executável. Os arquivos objeto e executável podem ser deletados sem problemas, são fáceis de serem gerados. Já o .c é o fonte do programa, ele que contém o código real do que o programa fará. Para executar o compilar, você deve:

cc -o nome_do_executável nome_do_programa.c

Que chama o CC, ou, C Compiler, em geral o GCC, compilador C da GNU.

Um detalhe interessante de se saber é como parar a execução de um programa. Todo sistema tem sua forma particular de fazer isso. Em geral, devemos pressionar Ctrl (tecla Control) junto com C, ou junto com Z, ou mesmo D.

Outra, o comando ls é equivalente ao DIR do DOS e permite listar os arquivos do diretório atual. O comando cd, change dir, também é equivalente a outros sistemas, serve para trocar de diretório.

O arquivo de cabeçalho mais comum existente hoje é o padrão de entrada/saída, da biblioteca C padrão.

Para incluir um cabeçalho, adicione ao código fonte:
#include cabecalho.h
em cima do programa.

#include "meu_cabecalho.h"
para incluir um arquivo pessoal, que esteja no diretório atual.

#include quando ele se encontra em um dos diretórios padrão, como /usr/include.

A diretiva #include é um comando para o pré-processador, que falaremos em outra semana.

Existem situações que não precisamos dizer cabeçalho algum ou ter bibliotecas chamadas explicitamente, todo programa utiliza a biblioteca c padrão, libc. Sempre. Ou seja, programas que utilizam de suas funções não precisam que a chamem explicitamente.

#include
main() {
printf ("Biblioteca C padrão incluida\n");
printf ("Cozinhando com C e Linux!");
}

Um programa que use funções matemáticas, como por exemplo "seno", precisará adicionar os cabeçalho da respectiva biblioteca matemática.

#include
#include

main ()

{
double x,y;

y = sin (x);
printf ("Biblioteca matemática ok!");
}

Existem variações de sistema para sistema. Isso em relação a mouse, desenhos de janelas, propriedades do terminal e várias outras situações. Necessariamente, você terá que procurar no manual do sistema (man função, uma ajuda e tanto) ou do compilador.

Não importa quantas bibliotecas você usará, sua limitação será em geral memória, toda biblioteca adiciona o fonte e o código objeto. Sistemas Operacionais como o Linux tem a capacidade de distinguir e pegar apenas as funções que interessam. Já outros, são obrigados a adicionar todos os códigos na memória, e depois de já ter perdido tempo e espaço.

A forma de um programa em C

C é uma das linguagens mais flexíveis em termos de formato já existentes. É uma linguagem livre de formato. Isso quer dizer que não existem regras de onde quebrar linhas, botar chaves, e assim vai. Isso é ao mesmo tempo vantajoso mas perigoso. A vantagem é que o usuário tem a liberdade para criar um estilo que melhor lhe atenda. A desvantagem é que programas "bizarros" podem aparecer, e de impossível manutenção. Algumas dicas de se escolher uma estrutura bem definida:

* Programas maiores são de gerenciamento possível só se estiverem bem organizados.

* Programas são entendidos somente se os nomes de variáveis e funções condizem com o que fazem.

* É mais fácil achar partes de um programa se ele tiver bem ordenado, é impossível num programa totalmente desorganizado e "macarrônico" se achar algo.

Simplesmente regras rígidas na hora de escrever um programa não significam que ele terá êxito. Experiência na programação, muito bom senso e clareza de idéias são fatores decisivos na hora de se programar.

Até a próxima semana.

Nenhum comentário:

Postar um comentário