/* Write data to an open file Write should return exactly the number of bytes requested except on error. An exception to this is when the 'direct_io' mount option is specified (see read operation). */ int fs_write(const char *path, const char *buf, size_t size, off_t offset, struct fuse_file_info *fi) { char* temp = string_from_format(path, "%s"); // no uso string_duplicate para evitar el warning de tipos. //logger_info(logger, "Escribo archivo:"); //logear_path("fs_write", path); int ret = 0; uint indice = 0; int err = buscar_bloque_nodo(temp, &indice); free(temp); if (err) { // no existe.} return 0; } /*sem_wait(&mutex_nodos); GFile nodo = nodos[indice]; sem_post(&mutex_nodos);*/ ret = guardar_datos(&nodos[indice], buf, size, offset); if (!ret) { return size; } else { return 0; } }
///////////////////////////////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); }