
Enviado em 23/08/2015 - 16:34h
Olá, recebi o seguinte problema para fazer:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
char* itemA(FILE *arquivo, int tamanhoBloco)
{
//printf("\n cheguei 4 \n");
char *linha;
linha = (char *) malloc(tamanhoBloco * sizeof(char));
//printf("\n cheguei 5 \n");
if(arquivo==NULL) //verifica se o arquivo existe
{
printf("\n Arquivo não pode ser aberto! \n");
return 1;
}
//printf("\n cheguei 6 \n");
fseek(arquivo,0,SEEK_END); //posiciona o ponteiro para arquivo no final do arquivo
//printf("\n cheguei 7 \n");
int tamanhoArquivo = ftell(arquivo); //pega a posição final que é igual ao tamanho do arquivo
//printf("\n cheguei 8 \n");
srand(time(NULL)); //função que alimenta a função rand(), fazendo esta não repetir os números "aleatórios"
//printf("\n cheguei 9 \n");
int multiploBloco=(rand() % tamanhoArquivo) * tamanhoBloco; //inteiro recebe um numero aleatório múltiplo do tamanho do bloco
//printf("\n cheguei 10 \n");
printf("\n Multiplo do bloco: %d \n",multiploBloco);
if(multiploBloco > tamanhoArquivo)
multiploBloco= multiploBloco%tamanhoArquivo;
//printf("\n cheguei 11 \n");
printf("\n NOVO Multiplo do bloco: %d \n",multiploBloco);
fseek(arquivo,multiploBloco,SEEK_SET);
//printf("\n cheguei 12 \n");
fread(linha,tamanhoBloco,1,arquivo);
//printf("\n cheguei 13 \n");
fclose(arquivo);
//printf("\n cheguei 14 \n");
//free(linha);
//printf("\n cheguei 15 \n");
printf("%s",linha);
return linha;
}
void itemB(FILE *arq, int tamBloco)
{
printf("\n cheguei 2 \n");
int i=0;
char *linha;
linha = (char *) malloc(tamBloco * sizeof(char));
time_t t1,t2;
t1=time(NULL);
printf("\n tempo1: %d \n",t1);
for(i=0; i<20; i++)
{
printf("\n cheguei 3 \n");
itemA(arq,tamBloco);
//free(linha);
printf("\n cheguei 16 \n");
}
printf("\n cheguei 17 \n");
t2=time(NULL);
printf("\n tempo2: %d \n",t2);
printf("\n cheguei 18 \n");
}
int main()
{
FILE *arquivo;
int tamanhoBloco;
arquivo=fopen(" /*algum arquivo*/ ","a+");
tamanhoBloco=10;
//printf("\n cheguei 1 \n");
itemB(arquivo,tamanhoBloco);
//printf("\n cheguei 19 \n");
return 0;
}
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (14)
Instalação do cosmic no archlinux (1)
De volta para o futuro - ou melhor, para o presente (parte 2) (2)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (7)









