+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 3 su 3

Compilatore (GCC) che mi segnala errore su sprintf

  1. #1
    joker_ltd non è in linea Novello
    Buongiorno a tutti

    ho un codice (ereditato) che contiene una serie di istruzioni sprintf, ma che all'atto della compilazione (il Makefile contiene solo una istruzione di build: di due files .c) mi si blocca sul fatto che vorrebbe che trasformi da sprintf in snprintf.
    Ora essendocene uno sproposito, e dovendo andare a settane il valore del buffer (la n di snprintf in pratioca) per ciascuno, ci metto una giornata. Premetto che il codice compilato va bene ma andava cambiata una stringa (un URL).
    Qualcuno mi sa dare un dritta del perche' si ostini a volere che io cambi le funzioni e di come potrei fare si che non mi sollevi questo errore in compilazione?

    Grazie mille
    Carlos

  2. #2
    E' semplice. Quelle funzioni sono pericolose per problemi di possibili buffer e non vanno più usate. Al loro posto devono essere usate le versioni "sicure".

    Comunque, quale versione di gcc e quale messaggio esattamente ricevi?
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    joker_ltd non è in linea Novello
    Innanzi tutto grazie per la risposta.

    La versione di gcc e' la 4.4.5,

    il Makefile con tiene solo le seguenti righe

    build:
    c gt_searchhotels
    c gt_searchhotelsa


    il dump della compilazione e' il seguente

    make: *** No targets specified and no makefile found. Stop.
    [Exit 2]
    swdeveloper3@vm1142:~$ cd galileoturismo/gt_searchhotels/
    swdeveloper3@vm1142:~/galileoturismo/gt_searchhotels$ make
    c gt_searchhotels
    Attenzione : trovata immagine fuori dalla directory images :
    1159: /*printf("<body style='background: url(../immagini/sf.jpg);background-repeat: repeat-x;background-attachment:fixed;'>\n");*/

    Attenzione, ci sono 284 'sprintf', procedere alla sostituzione con 'snprintf' prima di procedere.
    gt_searchhotels.c: In function ‘main’:
    gt_searchhotels.c:614: error: expected expression before ‘/’ token
    gt_searchhotels.c: In function ‘stampafile’:
    gt_searchhotels.c:2211: warning: passing argument 2 of ‘sprintf’ makes pointer from integer without a cast
    /usr/include/stdio.h:341: note: expected ‘const char * __restrict__’ but argument is of type ‘long unsigned int’
    gt_searchhotels.c:2212: warning: passing argument 2 of ‘sprintf’ makes pointer from integer without a cast
    /usr/include/stdio.h:341: note: expected ‘const char * __restrict__’ but argument is of type ‘long unsigned int’
    gt_searchhotels.c:2369: warning: passing argument 2 of ‘sprintf’ makes pointer from integer without a cast
    /usr/include/stdio.h:341: note: expected ‘const char * __restrict__’ but argument is of type ‘long unsigned int’
    gt_searchhotels.c: In function ‘stampafilegruppi’:
    gt_searchhotels.c:2874: warning: passing argument 2 of ‘sprintf’ makes pointer from integer without a cast
    /usr/include/stdio.h:341: note: expected ‘const char * __restrict__’ but argument is of type ‘long unsigned int’
    gt_searchhotels.c:2573: warning: unused variable ‘record’
    gt_searchhotels.c:2573: warning: unused variable ‘k’
    gt_searchhotels.c:2572: warning: unused variable ‘appofine’
    gt_searchhotels.c:2572: warning: unused variable ‘appoinizio’
    gt_searchhotels.c:2566: warning: unused variable ‘uscita’
    gt_searchhotels.c:2565: warning: unused variable ‘ingresso’
    c gt_searchhotelsa

    Attenzione, ci sono 1 'sprintf', procedere alla sostituzione con 'snprintf' prima di procedere.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Messaggio di errore del compilatore: CS0246
    Da Fabio85 nel forum ASP 3, ASP .Net
    Risposte: 2
    Ultimo Post: 04-07-2012, 11:07
  2. Risposte: 7
    Ultimo Post: 18-02-2005, 15:02
  3. [C/C++] sprintf & stream
    Da lucagalbu nel forum C/C++
    Risposte: 8
    Ultimo Post: 05-01-2005, 14:09
  4. [C] sprintf e puntatori a char
    Da cxrnvs nel forum C/C++
    Risposte: 1
    Ultimo Post: 23-10-2004, 00:31