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;
}
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (2)
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta