[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Nome do arquivo compactado



talvez isso resolva o problema de uma vez por todas:
char *nome_arq;
int tam;
nome_arq = (char *) malloc(strlen(argv[1])+6); /*+6 para .huff\0 */

for(tam=0;tam<strlen(argv[1]);tam++) nome_arq[tam]=argv[1][tam];
nome_arq[tam++]='.';
nome_arq[tam++]='h';
nome_arq[tam++]='u.';
nome_arq[tam++]='f';
nome_arq[tam++]='f';
nome_arq[tam]='\0';

CERTO?

Daniel Cukier

-----Mensagem original-----
De: Hugo Kotsubo <kot@linux.ime.usp.br>
Para: Marcos <mlemos@alpha.hydra.com.br>
Cc: Lista de discussao-mac122 <yoshi-mac122@ime.usp.br>
Data: Quinta-feira, 10 de Dezembro de 1998 18:49
Assunto: Re: Nome do arquivo compactado



  Bom, eu copiei os caracteres um por um, e acrescentei '\0' no final da
string, e nao deu pau. O que pode estar acontecendo eh que na hora de
colocar os caracteres no final de nome_arq, vc esteja fazendo algo como :

  for(.....) {
   *nome_arq = '<char>';
    nome_arq++;
  }

  Ou seja, vc muda o endereco de nome_arq, e ele deixa de apontar p/ o
comeco da string. Na pior das hipoteses, ele pode ate estar apontando para
o '\0', e isso explicaria porque o fopen nao esta abrindo o arquivo.
  Claro que tb pode nao ser nada disso, mas espero ter ajudado.

   falou.

Hugo Kotsubo   <kot@linux.ime.usp.br>

On Thu, 10 Dec 1998, Marcos wrote:

> Eu criei um char *nome_arq e aloquei para ele um espaço de strlen
> (argv[1] + 5+1), mas não estou copiando os caracteres um a um...
> Primeiramente, eu faço strcpy (nome_arq, argv[1]), ou seja, copio o
> conteúdo de argv[1] para nome_arq, e, depois, tento concatenar a
> extensão fazendo strcat (nome_arq, ext)...
> Parece que ele concatena, mas qdo tento abrir o arquivo fazendo
> fopen(nome_arq, "wb"), o ponteiro referente ao arquivo simplesmemte
> retorna NULL...
> Vc já conseguiu abrir o arquivo compactado com o nome que está sendo
> pedido na lista ? Será que eu devo copiar os caracteres um a um ou devo
> usar o strcat ?
>