Manejo de archivos en UNIX
Tjomen WallacePráctica o problema12 de Febrero de 2019
579 Palabras (3 Páginas)223 Visitas
INSTITUTO POLITECNICO [pic 1][pic 2]
NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
ALUMNO:
Lima Ramírez Carlos Augusto Palacios Rivas Priscila Ivonne
ASIGNATURA:
SISTEMAS OPERATIVOS
PROFESOR:
DAVID ARAUJO
GRUPO: 2CV9
“PRACTICA 10”
MANEJO DE ARCHIVOS EN UNIX
OBJETIVO: Aplicar la forma como se manejan archivos en los sistemas UNIX. Programar la técnica de mapeo de archivos.
DESCRIPCION:
Se programó una técnica para poder acceder archivos mediante un programa y asi realizar un manejo de archivos más rápido.
CODIGO FUENTE:
#define MYNAME "sem1.c"
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{ int fd, tam; char *org, *p,
*q; struct stat bstat;
if (argc!=3) { fprintf(stderr, "Uso: %s archivo_origen archivo_destino\n", MYNAME);
return(1);
}
if ((fd=open(argv[1], O_RDONLY))<0) { perror(MYNAME": No puede abrirse el archivo");
return(1);
}
if (fstat(fd, &bstat)<0) {
perror(MYNAME": Error en fstat del
archivo"); close(fd); return(1);
}
if ((org=mmap((caddr_t) 0, bstat.st_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd,
0)) == MAP_FAILED) { perror(MYNAME": Error en la proyeccion del archivo");
close(fd); return(1); }
close(fd);
p=org;
for ( ; p
(*p)=toupper(*p);
if ((fd=open(argv[2], O_CREAT|O_TRUNC|O_RDWR, 0640))<0) { perror(MYNAME": No puede crearse el archivo destino"); exit(1);
}
if (ftruncate(fd, bstat.st_size)<0) {
perror(MYNAME": Error en ftruncate del archivo
destino"); close(fd); unlink (argv[2]);
exit(1);
}
if ((q=mmap((caddr_t) 0, bstat.st_size, PROT_WRITE,MAP_SHARED, fd, 0)) == MAP_FAILED) { perror(MYNAME": Error en la proyeccion del archivo destino"); close(fd); unlink (argv[2]);
exit(1);
}
memcpy(q, org, bstat.st_size);
munmap(p, bstat.st_size); munmap(q, bstat.st_size);
return(0);
...