Título: warnings en compilacion Publicado por: ccsponcer3 en 30 Mayo 2016, 04:37 am Hola gente, tengo lo siguiente, esto lo que hace es basicamente crear un archivo "vacio" en base a un archivo de configuracion del cual obtiene la data respectiva. La cuestion es que me tira unos warnings en la funcion fgets y en las funciones fscanf que dicen lo siguiente:
ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] y esto para la funcion exec, que directamente no la reconoce: implicit declaration of function ‘exec’ [-Wimplicit-function-declaration] FILE *conf = NULL; char *config_file = "swap.cfg"; char *nombre_swap = calloc(50,1); char *dd = calloc(1000,1); int count_page = 0; int size_page = 0; conf = fopen(config_file,"r"); if(conf){ fgets(dd,1000,conf); //Saltamos la primer linea fscanf(conf,"NOMBRE_SWAP=%s\n\r",nombre_swap); fscanf(conf,"CANTIDAD_PAGINAS=%d\n\r",&count_page); fscanf(conf,"TAMANIO_PAGINA=%d\n\r",&size_page); memset(dd,0,1000); snprintf(dd,1000,"dd if=/dev/zero of=%s bs=%i count=%i",nombre_swap,count_page,size_page); printf("dd command: %s\n",dd); exec(dd); //ejecutar linea de comando } else { printf("no se puede abrir el archivo de configuracion\n"); } Lo que no tengo idea mucho es como proceder y especificamente que me esta diciendo. Gracias! Título: Re: warnings en compilacion Publicado por: AlbertoBSD en 30 Mayo 2016, 04:55 am :silbar: :silbar: Reconozco ese codigo ;-) ;-)
Sobre el exec necesitas: Código
Y mas info al respecto de esas funciones en: http://linux.die.net/man/3/exec Lo que no tengo idea mucho es como proceder y especificamente que me esta diciendo. Gracias! Citar ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result] Te esta diciendo que se esta ignorando el resultado que devuelven esas funciones cada una devuelve algun valor con el cual puedes validar que la funciones tuvo exito o no.. Sobre el warning de fscanf y fgets son omitibles solo si realmente quieres validar si hay o no error por ejemplo fgets devuelve: Citar gets() and fgets() return s on success, and NULL on error or when end of file occurs while no characters have been read. Mas info en http://linux.die.net/man/3/fgets Lo que quiere decir es que realmente tendrias que agregar esto: Código
Eso fue para el fgets y para el fscanf tenemos http://linux.die.net/man/3/fscanf Citar These functions return the number of input items successfully matched and assigned, which can be fewer than provided for, or even zero in the event of an early matching failure. Dice que tienes que tener: Código
Pero repito realemente es omitible el warning Saludos! Título: Re: warnings en compilacion Publicado por: ccsponcer3 en 30 Mayo 2016, 05:57 am Hola, gracias por la respuesta en cuanto a la libreria unistd.h la misma esta incluida, sera por los parametros de la misma? gracias
Título: Re: warnings en compilacion Publicado por: HardForo en 5 Junio 2016, 18:03 pm Prueba de este modo....
Código: if( fgets (dd,1000,conf)!=NULL ){ etc El compilador te esta diciendo que debes chequear lo que devuelve fgets() aunque claro que podriasa usar la opcion que te da: -Wunused-result (con eso suprimes el error) |