Gustavo Andrés Uribe Gómez
guribe@unicomfacauca.edu.co
+572 8220517 Ext. 130
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
/* Programa para copiar archivos. La verificación y el reporte de errores son mínimos. */
#include
#include
#include
#include
<sys/types.h>
<fcntl.h>
<stdlib.h>
<unistd.h>
/* incluye los archivos de encabezado necesarios *
int main(int argc, char *argv[]); /* prototipo ANSI */
#define TAM_BUF 4096
#define MODO_SALIDA 0700 /* usa un tamaño de búfer de 4096 bytes */
/* bits de protección para el archivo de salida */
int main(int argc, char *argv[])
{
int ent_da, sal_da, leer_cuenta, escribir_cuenta:
char bufer[TAM_BUF];
if (argc != 3) exit(1); /* error de sintaxis si argc no es 3 */
/* Abre el archivo de entrada y crea el archivo
ent_da = open(argv[1], O_RDONLY);
if (ent_da < 0) exit(2);
sal_da = creat(argv[2], MODO_SALIDA);
if (sal_da < 0) exit(3); de salida */
/* abre el archivo fuente */
/* si no se puede abrir, termina */
/* crea el archivo de destino */
/* si no se puede crear, termina */
/* Ciclo de copia */
while (TRUE) {
leer_cuenta = read(ent_da,bufer,TAM_BUF); /* lee un bloque de datos */
if (lee_cuenta <= 0) break;
/* si llega al fin de archivo o hay un error, sale del ciclo */
escribe_cuenta = write(sal_da,bufer,lee_cuenta); /* escribe los datos */
if (escribe_cuenta <= 0) exit(4);
/* escribe_cuenta <= 0 es un error */
}
/* Cierra los archivos */
close(ent_da);
close(sal_da);
if (lee_cuenta==0)
exit(0);
else
exit(5);
/* no hubo error en la última lectura */
/* hubo error en la última lectura */
}
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición
Fuente: Sistemas Operativos Modernos, tanenbaum, 3ra edición