Ir ao conteúdo

dup() e fileno()


wagzaum

Posts recomendados

Postado

Pessoal, alguém poderia me ajudar nas funcoes dup() e fileno(). Não sei ao certo como utilizá-las para redirecionar um arquivo para saída ou entrada.

O fileno() tem formato do tipo (FILE *stream). no campo FILE eu teria que colocar o diretório do arquivo a ser utilizado como entrada ou saída, como, por exemplo "/home/teste.txt" ?

E o que seria exatamente o vetor stream? tenho que entrar com o que nele?

Em relação ao dup() eu sei que ele lê um fd com valores de 0,1 e 2(se nao me engano 1 é saída e 2 é entrada). Então, eu estava pensando em conseguir o o fd(file description) pelo fileno() e colocá-lo dup() para abrir um arquivo.

LOGO, COMO SERIA PARA REDIRECIONAR UM ARQUIVO PARA SER ENTRADA OU SAÍDA DE ALGUM DADO? E COMO FAÇO ALGO DIGITADO NO PROGRAMA APARECER NUM ARQUIVO EXTERNO AO PROGRAMA?

estava pensando algo do tipo:

int fd;

fd = fileno(nao sei o q por e como por);

dup(fd)

// E agora, como fazer o código para modificar saída ou entrada?

Qualquer ajuda que vier, vem bem!!! haha

abraço!

Postado

Pessoal, alguém poderia me ajudar nas funções dup() e fileno(). Não sei ao certo como utilizá-las para redirecionar um arquivo para saída ou entrada.

Não são funções nativas das bibliotecas da linguagem. Não tem como adivinhar qual é o protótipo delas, se tu não postar.

O fileno() tem formato do tipo (FILE *stream). no campo FILE eu teria que colocar o diretório do arquivo a ser utilizado como entrada ou saída, como, por exemplo "/home/teste.txt" ?

Você quer dizer que fileno() tem um protótipo do tipo


fileno(FILE *stream);

?

Se sim, o parametro *stream é um ponteiro do tipo FILE, que deve estar apontando para o arquivo. Você pode usar a função 'fopen()' que retorna este ponteiro.

E o que seria exatamente o vetor stream? tenho que entrar com o que nele?

Não é um vetor, é um ponteiro. A explicação acima se refere á ele.

Em relação ao dup() eu sei que ele lê um fd com valores de 0,1 e 2(se nao me engano 1 é saída e 2 é entrada). Então, eu estava pensando em conseguir o o fd(file description) pelo fileno() e colocá-lo dup() para abrir um arquivo.

LOGO, COMO SERIA PARA REDIRECIONAR UM ARQUIVO PARA SER ENTRADA OU SAÍDA DE ALGUM DADO? E COMO FAÇO ALGO DIGITADO NO PROGRAMA APARECER NUM ARQUIVO EXTERNO AO PROGRAMA?

É necessário saber mais sobre essas funções.

Postado

Uhmm!!! Vou tentar estudar mais essas funções e tentar postar algum exemplo de código. Muito Obrigado pela ajuda! Quando der eu posto mais informações aqui para ficar mais claro!

abraço!

Postado

Essas funções fazem parte da biblioteca para sistemas *nix, ou você procura a utilização correta dela no google ou então usa as funções fputs(), fputc(), fprintf() para escrever em uma stream FILE aberta via fopen().

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...