void verificar3(int n){
    switch(n){
        case 1:
            crearArchivo();
            sleep(2);
            menu3();
            break;
        case 2:
            modificarArchivo();
            sleep(2);
            menu3();
            break;
        case 3:
            eliminarArchivo();
            sleep(2);
            menu3();
            break;
        case 4:
            printf("renombrar Archivo\n");
            //eliminarModificarArchivo(1);
            sleep(2);
            menu3();
            break;    
        default:
            menu0();
    }
}
///////////////////////////////MAIN///////////////////////7/////////////77777
int main(int argc, char **argv){
	
	FILE *in;
	int filas;
	int filas2;
	int columnas=3;
	int columnas2=3;
	char *filename=argv[1];
	char *filename2=argv[2];
	float *vector_datos;
	float *vector_datos2;
	float *vector_x;
	
	
	if(argc!=2){
   	 	printf("USAGE: %s\n", USAGE);
   	 	exit(1);
  	}



	load_file(filename);
	
	filas=contar_filas(filename,0);
	
	gsl_matrix *transpuesta = gsl_matrix_alloc (columnas, filas);
	gsl_matrix *matriz = gsl_matrix_alloc (filas, columnas);
	gsl_matrix *multiplicacion = gsl_matrix_alloc (filas, filas);
	gsl_matrix *vector = gsl_matrix_alloc (filas, 1);
	gsl_matrix *inversa = gsl_matrix_alloc (filas, filas);
	gsl_matrix *multiplicacion2 = gsl_matrix_alloc (columnas, 1);
	gsl_matrix *multiplicacion3 = gsl_matrix_alloc (columnas, 1);



	vector_datos=malloc(2*filas*sizeof(float));
	
	guardar_datos(vector_datos,filename,filas);

	crear_matriz(matriz,vector_datos,filas,columnas,0);
	
	crear_matriz(vector,vector_datos,filas,1,1);
	
	transpuesta=transpose(matriz,columnas,filas);
	
	
	multiplicacion=multiply(transpuesta,matriz,columnas,columnas);
	
	inversa=inverse(multiplicacion,columnas);
	
	multiplicacion2=multiply(transpuesta,vector,columnas,1);
	
	multiplicacion3=multiply(inversa,multiplicacion2,columnas,1);

	crearArchivo(multiplicacion3);


}
int main()
{
    FILE *fp;
    Lista lista;
    tInfo reg;
    datos dato;
    char prov[26];
    printf("\t\t\t\t\tEJEMPLO DE PARCIAL\n\n");
    printf("\t\t\t\t\tIngrese fecha y cantidad minima a evaluar\n");

    if(!abrirArchivo(&fp,ARCHPROD,"r+b",!CON_SIN_MSJ))
    {
        crearArchivo(&fp);
        if(!abrirArchivo(&fp,ARCHPROD,"r+b",CON_SIN_MSJ))
            return 0;
    }
    crearLista(&lista);
    do
    {
        printf("Fecha: ");
        fflush(stdin);
        scanf("%d/%d/%d",&dato.fcom.dia,&dato.fcom.mes,&dato.fcom.anio);
    }while(!fechaValida(&dato.fcom));

    printf("\nCantidad minima: ");
    scanf("%d",&dato.stockMin);

    fread(&reg,1,sizeof(reg),fp);
    while(!feof(fp))
    {
        if(compararXfcomYstock(&reg,&dato))
            actualizacionPrecio(&fp,&reg);
        if(!listaLlena(&lista))
            insertarPorFechaVentaYdescripcion(&lista,&reg,compararXfcomYDescrp);

        fread(&reg,1,sizeof(reg),fp);
    }
    system("cls");
    mostrarArchivo(&fp);
    fclose(fp);
    printf("\t\t\t\t\nIngrese el proveedor a eliminar de la lista: ");
    fflush(stdin);
    gets(prov);
    eliminarDeLista(&lista,prov);
    vaciarLista(&lista);

    return 0;
}
int32_t rfs_create(int32_t sock, NIPC paqueteEnviar, char *path, int32_t modo) {
	extern t_log *loguear;

	usleep(retardo);
	int32_t i = crearArchivo(path, modo);

	crearNIPC(7, 0, i, 0, NULL, &paqueteEnviar, 0);

	char* nombreDeArchivo = dameElNombre(path);
	log_debug(loguear, "Nombre De Archivo: %s- Operacion create",
			nombreDeArchivo);

	enviarNIPC(sock, paqueteEnviar);
	chauNIPC(&paqueteEnviar);
	return 0;
}
int main()
{
    Producto m_producto ;
    Producto proAux[20];
    FILE *ptr;
    char name[T_P];
    int opc ;
    
    do
    {
        opc = muestraMenu();
       
        switch( opc )
        {
           case 1: 
                   leerNombre( name );
                   crearArchivo( name, ptr );
           break;
           
           case 2: 
                   leerNombre( name );
                   escribeArchivo( name, ptr, m_producto, &nPro ) ;
           break;
           
           case 3: 
                   leerNombre( name );
                   leerArchivo( name, ptr, m_producto, nPro );
           break;
          
           case 4: 
                   leerNombre( name );
                   determinaTotal( name, ptr, m_producto, proAux, nPro);
           break;
                     
           case 5: break;
        }
        
     }while ( opc != 5 );
    
     system ( "pause" );
}
void crearCarpetaArchivo(char *id, char *path, char comando, int tamano, char *pathContenido){

    /*Limpio las variables anteriormente creadas*/
    limpiar(rutaDisco, 100);
    limpiar(rutaContenido, 100);
    limpiar(identificador, 10);
    limpiar(rutaArchivo, 100);
    limpiar(nameParticion, 16);

    /*Copio los valores del metodo en los nuevos arreglos*/
    strcpy(identificador, id);
    strcpy(rutaArchivo, path);
    strcpy(rutaContenido, pathContenido);

    /*Por medio del ID busco el path del disco entre las particiones montadas*/
    xnode **w = NULL;

    w = xx_list_search(&m, identificador);

    if(w != NULL){
        strcpy(rutaDisco, (*w)->path);
        strcpy(nameParticion, (*w)->nombreParticion);
    }

    /*Leo del archivo el MBR para identificar en que byte empieza la particion correspondiente al ID*/
    MBR test;

    FILE * prueba = fopen(rutaDisco, "r+b");
    fseek(prueba, 0, SEEK_SET);
    fread(&test, sizeof(MBR), 1, prueba);

    if(prueba != NULL){

        /**************************************************************************************************************************************************************************************************************************/
        if(strcmp(test.mbr_partition_1.part_name, nameParticion) == 0){

            int respuesta = busquedaCarpeta(1, path, rutaDisco);

            /*Si la respuesta es igual a 0, significa que la ruta ingresada no existe, por lo que si viene el comando -p se procede a crear la ruta indicada, pero si no, se muestra error*/
            if(respuesta == 0){
                if(comando == 'p'){
                    busqueda_creacion(1, rutaArchivo, rutaDisco);
                    crearArchivo(1, rutaDisco, rutaArchivo, tamano, pathContenido);
                }else{
                    printf("No se puede realizar lo solicitado porque la ruta ingresada no existe!\n");
                    printf("***********************************************************************\n");
                }
            /*Si la ruta ingresada si existe, se procede a crear el archivo :)*/
            }else{
                printf("La ruta de archivo si existe, se procederá a crear el archivo!\n");
                crearArchivo(1, rutaDisco, rutaArchivo, tamano, pathContenido);
            }

        /**************************************************************************************************************************************************************************************************************************/
        }else if(strcmp(test.mbr_partition_2.part_name, nameParticion) == 0){

             int respuesta = busquedaCarpeta(2, path, rutaDisco);

            /*Si la respuesta es igual a 0, significa que la ruta ingresada no existe, por lo que si viene el comando -p se procede a crear la ruta indicada, pero si no, se muestra error*/
            if(respuesta == 0){
                if(comando == 'p'){
                    busqueda_creacion(2, rutaArchivo, rutaDisco);
                    crearArchivo(2, rutaDisco, rutaArchivo, tamano, pathContenido);
                }else{
                    printf("No se puede realizar lo solicitado porque la ruta ingresada no existe!\n");
                    printf("***********************************************************************\n");
                }
            /*Si la ruta ingresada si existe, se procede a crear el archivo :)*/
            }else{
                printf("La ruta de archivo si existe, se procederá a crear el archivo!\n");
                crearArchivo(2, rutaDisco, rutaArchivo, tamano, pathContenido);
            }

        /**************************************************************************************************************************************************************************************************************************/
        }else if(strcmp(test.mbr_partition_3.part_name, nameParticion) == 0){

            int respuesta = busquedaCarpeta(3, path, rutaDisco);

            /*Si la respuesta es igual a 0, significa que la ruta ingresada no existe, por lo que si viene el comando -p se procede a crear la ruta indicada, pero si no, se muestra error*/
            if(respuesta == 0){
                if(comando == 'p'){
                    busqueda_creacion(3, rutaArchivo, rutaDisco);
                    crearArchivo(3, rutaDisco, rutaArchivo, tamano, pathContenido);
                }else{
                    printf("No se puede realizar lo solicitado porque la ruta ingresada no existe!\n");
                    printf("***********************************************************************\n");
                }
            /*Si la ruta ingresada si existe, se procede a crear el archivo :)*/
            }else{
                printf("La ruta de archivo si existe, se procederá a crear el archivo!\n");
                crearArchivo(3, rutaDisco, rutaArchivo, tamano, pathContenido);
            }

        /**************************************************************************************************************************************************************************************************************************/
        }else if(strcmp(test.mbr_partition_4.part_name, nameParticion) == 0){

            int respuesta = busquedaCarpeta(4, path, rutaDisco);

            /*Si la respuesta es igual a 0, significa que la ruta ingresada no existe, por lo que si viene el comando -p se procede a crear la ruta indicada, pero si no, se muestra error*/
            if(respuesta == 0){
                if(comando == 'p'){
                    busqueda_creacion(4, rutaArchivo, rutaDisco);
                    crearArchivo(4, rutaDisco, rutaArchivo, tamano, pathContenido);
                }else{
                    printf("No se puede realizar lo solicitado porque la ruta ingresada no existe!\n");
                    printf("***********************************************************************\n");
                }
            /*Si la ruta ingresada si existe, se procede a crear el archivo :)*/
            }else{
                printf("La ruta de archivo si existe, se procederá a crear el archivo!\n");
                crearArchivo(4, rutaDisco, rutaArchivo, tamano, pathContenido);
            }

        }
        /**************************************************************************************************************************************************************************************************************************/

    }

}