int main() {
	char* fichero_existente = "/FICHEROS/lectura/leer_escritura_varios_tamanyos256";
	char* fichero_no_existente = "/FICHEROS/lectura/leer_escritura_varios_tamanyos64";

	//Montar disco.
	printf("abrir_fichero_exista_noexista -> Montando el disco en la particion /FICHEROS/lectura con discoFS\n");
	if(montar("disco", "lectura", "discoFS") < 0) {
		printf("abrir_fichero_exista_noexista -> Error al montar particion lectura en disco con discoFS.\n");
	}

	//Abrir ficheros
	int fd64 = abrir(fichero_no_existente, T_FICHERO);
	if(fd64 < 0) {
		printf("abrir_fichero_exista_noexista: Error al abrir fichero origen %s\n", fichero_no_existente);
		return -1;
	}
	int fd256 = abrir(fichero_existente, T_FICHERO);
	if(fd256 < 0) {
		printf("abrir_fichero_exista_noexista: Error al abrir fichero origen %s\n", fichero_existente);
		return -1;
	}

	printf("abrir_fichero_exista_noexista -> %s -> fd = %d", fichero_no_existente, fd64);
	printf("abrir_fichero_exista_noexista -> %s -> fd = %d", fichero_existente, fd256);

	//Mostrar ficheros.
	char buffer[TAM_BUFFER + 1];
	int leidos;
	bzero(buffer, TAM_BUFFER + 1);
	leidos = leer(fd256, buffer, TAM_BUFFER);
	int leidos256 = leidos;
	while(leidos > 0) {
		printf("%s",buffer);
		bzero(buffer, TAM_BUFFER + 1);
		leidos = leer(fd256, buffer, TAM_BUFFER);
		leidos256 += leidos;
	}
	printf("Leidos(%s): %d\n", fichero_existente, leidos256);

	bzero(buffer, TAM_BUFFER + 1);
	leidos = leer(fd64, buffer, TAM_BUFFER);
	int leidos64 = leidos;
	while(leidos > 0) {
		printf("%s",buffer);
		bzero(buffer, TAM_BUFFER + 1);
		leidos = leer(fd64, buffer, TAM_BUFFER);
		leidos64 += leidos;
	}
	printf("Leidos(%s): %d\n", fichero_no_existente, leidos64);

	//Cerrar ficheros
	cerrar(fd64);
	cerrar(fd256);

	return 0;
}
示例#2
0
文件: mi_rm.c 项目: alexsobrino/UIB
int main (int argc, char **argv)
{
	if (argc != 3) {
		printf("(mi_rm.c) ERROR: usar %s nombre_sistema_ficheros nombre_fichero.\n",argv[0]);
		return -1;
	}
	if (montar(argv[1]) == -1) {
		return -1;
	}
	mi_unlink_directorio(argv[2]);
	if (desmontar() == -1) {
		return -1;
	}
}
int main() {
	/*
		MONTAJE DISCOFS
	*/
	//Montar disco.
	printf("escribir_fichero_mul_varfic -> Montando el disco en la particion /FICHEROS/lectura con discoFS\n");
	if(montar("disco", "lectura", "discoFS") < 0) {
		printf("escribir_fichero_mul_varfic -> Error al montar particion lectura en disco con discoFS.\n");
	}

	int i = 0;
	for(i = 0; i < 5; i++) {
		if(crear_proceso("escribir_fichero_mul_varfic_child") < 0) {
			printf("Error creando escribir_fichero_mul_varfic_child.\n");
		}
	}

	return (0);
}
示例#4
0
int main(){

	char origen[MAX_STRING];
        char buffer[TAM_BUFFER];

	int escritos;
        int ret;
	int fd_origen;

        printf("Montando el disco en la particion /FICHEROS/lectura con discoFS\n");
        ret=montar("disco", "lectura", "discoFS");
        if (0 > ret) {
                printf("escribir_fichero: Error al montar particion lectura en disco con discoFS\n");
        }
	

	/* obtener los nombre de los ficheros */
        printf("Introduzca el fichero destino EJ: /FICHEROS/lectura/datos:");
        scanf("%s",origen);

        /* abrir fichero origen */
        fd_origen = abrir (origen,T_FICHERO);
        if (0 > fd_origen) {
                printf("escribir_fichero: Error al abrir fichero destino %s\n", origen);
                return (-1);
        }

	llenar_bloque('A', buffer);
        
        escritos = escribir(fd_origen,buffer,TAM_BUFFER);
		printf("%d\n", escritos);
        
        cerrar(fd_origen);

	return (0);
}
示例#5
0
int main(){
	char origen[MAX_STRING];
	char destino[MAX_STRING];
	char buffer[TAM_BUFFER];

	int fd_origen, fd_destino;
	int leidos, escritos;
	int ret;
	
	/* montar debugfs */
	printf("Montando la depuracion en la particion /FICHEROS/proc con debugFS\n");
	ret=montar("", "proc", "debugFS");
	if (0 > ret) {
		printf("mostrar_fichero: Error al montar particion de depuracion con debugFS\n");
		return (-1);
	}
	/* montar cdrom */
	printf("Montando el cdrom en la particion /FICHEROS/lectura con  cdromFS\n");
	ret=montar("cdrom","lectura", "cdromFS");
	if (0 > ret) {
		printf("Copiar_fichero: Error al montar particion lectura en cdrom con cdromFS\n");
		return (-1);
	}
	/* montar disco */
	printf("Montando el disco en la particion /FICHEROS/escritura con discoFS\n");
	ret=montar("disco","escritura", "discoFS");
	if (0 > ret) {
		printf("Copiar_fichero: Error al montar particion escritura en disco con discoFS\n");
		return (-1);
	}

	
	

	/* obtener los nombre de los ficheros */
	printf("Introduzca el fichero origen EJ: /FICHEROS/lectura/datos:");
	scanf("%s",origen);
	printf("Introduzca el fichero destino EJ: /FICHEROS/escritura/resultado:");
	scanf("%s",destino);
	
	/* abrir fichero origen */
	fd_origen = abrir (origen, T_FICHERO);
	if (0 > fd_origen) {
		printf("Copiar_fichero: Error al abrir fichero origen %s\n", origen);
		return (-1);
	}
	
	/* abrir fichero destino */
	fd_destino = abrir (destino, T_FICHERO);
	if (0 > fd_destino) {
		printf("Copiar_fichero: Error al abrir fichero destino %s\n", destino);
		return (-1);
	}

	/* copiar origen en destino */
	leidos = leer(fd_origen,buffer,TAM_BUFFER);
	while (0 < leidos) { 
		escritos = escribir(fd_destino,buffer,leidos);
		if (leidos != escritos) {
			printf("Copiar_fichero: Error al escribir fichero destino %s\n", destino);
			return (-1);
		}
		leidos = leer(fd_origen,buffer,TAM_BUFFER);
	}
	
	
	/* cerrar fichero origen */
	cerrar (fd_origen);

	/* cerrar fichero destino */
	cerrar (fd_destino);
	

	/* sincronizar las escrituras */
	printf("Escribiendo los cambios de la particion /FICHEROS/escritura en el disco\n");

	sincronizar("escritura");
	return 0;
}
示例#6
0
int main(){

	int retDebug;
	int fd_origen = -1;
	int fd_disco = -1;
	int leidos = -1;
	int seek = 0;

	//PUEDE NECESITAR CAMBIO EN FUNCION DEL NUMERO DE DESCRIPTOR Y DEL NUMERO DE DISPOSITIVO
	char cadenaDescFichero[200] = "DESCFICHERO:\tID=2, tipo=0, inodo=-1, montaje=-1, Dispositivo=3\n";
	//char cadenaDescFichero[200] = "DESCFICHERO:\tID=2, tipo=0, inodo=-1, montaje=-1, Dispositivo=2\n";

	char buffer[1024];
	char *encontrado = NULL;

	buffer[1023] = '\0';


	/* montar debugfs */
	//printf("Montando la depuracion en la particion /FICHEROS/proc con debugFS\n");
	retDebug=montar("", "proc", "debugFS");
	if (0 > retDebug) {
		printf("test_e2_1_abrir_disco: Error al montar particion de depuracion con debugFS\n");
		printf("### Result: Fail\n");
		return (-1);
	}

	/* abrir fichero disco */
	fd_disco = abrir ("/DISPOSITIVOS/disco", 0);
	if (0 > fd_disco) {
		printf("test_e2_1_abrir_disco: Error al abrir el disco \n");
		printf("### Result: Fail\n");
		return (-1);
	}


	/* abrir fichero tabla de descriptores (tabla_procesos) */
	fd_origen = abrir ("/FICHEROS/proc/tabla_procesos", T_FICHERO);
	if (0 > fd_origen) {
		printf("test_e2_1_abrir_disco: Error al abrir fichero tabla_descriptores \n");
		printf("### Result: Fail\n");
		return (-1);
	}

	/*leemos la tabla de descriptores*/
	bzero(buffer, 1023);
	seek = 0;
	leidos = leer(fd_origen,buffer,1023);
	
	while (0 < leidos && leidos != 1023) { 
		seek += leidos;
		leidos = leer(fd_origen,&(buffer[seek]),1023-seek);
	}

	printf("%s\n\n\n", buffer);	//Falla con ficheros de imagen que tengan archivos de tamaño mayor que un bloque

	cerrar(fd_origen);
	cerrar(fd_disco);
	
	/*buscamos datos en la tabla de descriptores*/
	encontrado = strstr(buffer, cadenaDescFichero);

	if(encontrado == NULL)
	{
		printf("test_e2_1_abrir_disco: Datos en la tabla de descriptores no encontrados \n");
		printf("### Result: Fail\n");
		return -1;
	}

	printf("### Result: OK\n");
	return 0;
}