Exemplo básico do comando cp

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

[ Hits: 8.113 ]

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

Barra de progresso em forma de “roda”

Organizador de filmes para o IMDB

read_pg_conf

Super Truco

Árvore B


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts