Sei sulla pagina 1di 2

Seminario de Linux

Temario: Administración de archivos

Problemas:

1. Escribir un programa que lea un archivo desde teclado y lo muestre por pantalla.

/* Muestra en pantalla el contenido de un archivo de texto */


#include <stdio.h>
#define MAXLINEA 256
main()
{
int car; /* caracter de entrada */
FILE *pf; /* puntero a archivo */
char nombre[64]; /* buffer para el nombre del archivo */
char linea[MAXLINEA]; /* buffer de linea para fgets() */

printf("\nNombre del archivo: ");


gets(nombre);
if (*nombre == '\0')
return; /* No se ha introducido ningun nombre */

pf = fopen(nombre, "r");
if (pf == NULL)
{
printf("\nEL archivo no existe o la ruta no es valida.\n");
return;
}

while (fgets(linea,MAXLINEA,pf) != NULL)


fputs(linea,stdout);
fclose(pf);
}

2. Escribir un programa que reemplace al comando cp de linux ingresando los nombres


de los archivos desde línea de comandos.

/* Copia de un archivo a otro con otro nombre */


#include <stdio.h>
main(int argc,char *argv[])
{
FILE *origen, *destino;
char car, aux1, aux2;
int i=0, igu=1;
if (argc != 3)
{
printf ("Error. La instruccion es:\n cp origen destino\n");
return;
}
do
{
aux1=*(argv[1]+i);
aux2=*(argv[2]+i);
if (aux1 != aux2)
{
igu=0;
break;
}
i++;
} while (aux1 != '\0' || aux2 != '\0');
if (igu == 1)
{
printf ("El archivo destino es el mismo que el archivo origen\n");
return;
}

origen=fopen(argv[1],"r");
destino=fopen(argv[2],"w");
if (origen==NULL || destino ==NULL)
{
printf ("El archivo origen no existe o no hay espacio en el disco\n");
return;
}
while ( (car=getc(origen)) != EOF )
putc(car,destino);

fclose(origen);
fclose(destino);
}

3. Escribir un programa que reemplace al comando grep de linux ingresando el nombre


del archivo y la opción de búsqueda desde línea de comandos.

Potrebbero piacerti anche