code0
(usa Slackware)
Enviado em 15/10/2007 - 19:04h
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <fnttl.h>
#define FILE "arquivo.txt"
int main(void) {
struct stat stt;
int fd;
char *bytes;
if(stat(FILE,&stt)==-1) {
perror("stat");
return -1;
}
bytes=malloc(stt.off_t+1);
fd=open(FILE,O_RDONLY);
if(fd==-1 || bytes==null) {
perror("ops");
return -1;
}
bzero(bytes,sizeof(bytes));
read(fd,bytes,stt.off_t);
close(fd);
// arquivo lido na variavel char *bytes
// Apos a manipulacao dos dados, nao se esqueca do free
free(bytes);
return 0;
}
Eu escrevi isso direto aqui, creio que esteja Ok.
Explicacoes:
stat - recupera o status de um arquivo
struct stat - estrutura necessaria pela funcao stat
stt.off_t - tamanho total do arquivo, em bytes
malloc - aloca memoria
free - libera memoria alocada
As funcoes open, stat e read e close sao POSIX, o malloc e free sao libc.
[]'s