Exemplo básico do comando cp

Publicado por euteste da silva (última atualização em 15/07/2010)

[ Hits: 8.205 ]

Download cp.c




Exemplo do comando cp utilizando funções de baixo nível. Este programa copia um arquivo de até 1024 bytes.

  



Esconder código-fonte

#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>

#define BUFSIZE 1024
#define MODO_CRIACAO S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH


int main(int argc, char *argv[]) {


    int fd1, fd2;
    char buffer[BUFSIZE];
    int bytes_lidos;

    if(argc != 3){
      fprintf(stderr,"Uso: %s <arquivo> <novo-arquivo>\n",argv[0]);
      exit(-1);
    }

    if((fd1 = open(argv[1],O_RDONLY, S_IREAD))==-1){
        fprintf(stderr,"Erro: %s\n",strerror(errno));
        exit(-1);
    }
    if((fd2 = open(argv[2],O_WRONLY | O_TRUNC | O_CREAT, MODO_CRIACAO))==-1){
        fprintf(stderr,"Erro: %s\n",strerror(errno));
        exit(-1);
    }

    while((bytes_lidos=read(fd1,buffer,BUFSIZE))!=0) 
         write(fd2,buffer,bytes_lidos);

    close(fd1);
    close(fd2);
    return(0);

} 

Scripts recomendados

Justificador de texto em 80 colunas

file_exists() em C

Conversão integral de textos em letras maiúsculas

leitura/escrita de dados/estruturas em arquivo

Agenda Eletronica


  

Comentários
[1] Comentário enviado por daniel.capua em 15/07/2010 - 15:50h

Por mais que seja um calculo relativamente simples, seria interessante incluir documentação identificando as variáveis, não acha?

[2] Comentário enviado por foxbit3r em 20/07/2010 - 08:23h

Para um código tão pequeno eu creio que não há necessidade.


Contribuir com comentário