como passar um arquivo para uma funcao/procedimento

1. como passar um arquivo para uma funcao/procedimento

Cristiam
Dean_Winchester

(usa Outra)

Enviado em 06/10/2013 - 01:24h

como eu passo um arquivo para um procedimento


é assim


na chamada do procedimento


nome_procedimento ( ponteiro de arquivo)

e no procedumento

void nome_do_ procedimento ( FILE * ponteiro)



é assim?


  


2. Re: como passar um arquivo para uma funcao/procedimento

???
gokernel

(usa Linux Mint)

Enviado em 06/10/2013 - 07:15h

Olá !

Acredito que seria mais elegante/eficiente assim:

void nome_do_ procedimento ( char * FileName)




3. Re: como passar um arquivo para uma funcao/procedimento

Paulo
paulo1205

(usa Ubuntu)

Enviado em 06/10/2013 - 22:26h

Dean_Winchester escreveu:

como eu passo um arquivo para um procedimento


é assim


na chamada do procedimento


nome_procedimento ( ponteiro de arquivo)

e no procedumento

void nome_do_ procedimento ( FILE * ponteiro)



é assim?


Se o que você quer é passar um ponteiro para um arquivo já aberto, então sim, é exatamente desse modo que você deve proceder. O que talvez, dependendo do caso, você poderia fazer diferente é retornar um valor inteiro, em lugar de void, para indicar se a operação sobre o arquivo transcorreu normalmente, ou se acarretou erro.

Veja, aliás, que é exatamente assim que as funções da biblioteca padrão de manipulação de arquivo funcionam: fgets(), fwrite(), feof(), fgetc() e mesmo fclose() têm em comum um parâmetro que é um ponteiro de arquivo. A única exceção é fopen(), que serve justamente para criar o ponteiro, que ainda não existe, mas que será depois usado pelas demais funções.


4. Re: como passar um arquivo para uma funcao/procedimento

Arthur Rodrigues Stilben
gugarthur

(usa Fedora)

Enviado em 07/10/2013 - 17:27h

Pode sim. Um pequeno exemplo:

#include <stdio.h>

void print_file(FILE *fp)
{
int i;

for(i=1; i <= 10; i++)
fprintf(fp, "i = %d\n", i);

fclose(fp);
}

void main()
{
FILE *fp;

fp = fopen("teste.txt","w");
fprintf(fp, "Sample code\n");
print_file(fp);
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts