Abbiamo un sacco di codice legacy, scritto in diritto C (alcuni dei quali è K & R!), che per molti, molti anni è stato compilato utilizzando Visual C 6.0 (circa 1998) su una macchina XP. Ci rendiamo conto che questo è insostenibile, e stiamo cercando di spostarlo in un compilatore moderno. I problemi politici hanno affermato che il compilatore più recente consentito è VC ++ 2005.
Durante la compilazione del progetto, ci sono molti avvertimenti sulle funzioni di manipolazione delle stringhe non sicure utilizzate ( sprintf()
, strcpy()
, ecc.). La revisione di alcuni di questi luoghi mostra che il codice è effettivamente pericoloso; non controlla i buffer overflow. L'avviso del compilatore consiglia di passare a sprintf_s()
, strcpy_s()
, ecc. Tuttavia, queste sono funzioni create da Microsoft (e proprietarie) e non sono disponibili su (diciamo) gcc (sebbene siamo principalmente un negozio Windows abbiamo alcuni client su vari tipi di * NIX)
Come dovremmo procedere? Non voglio caricare le nostre librerie di stringhe. Voglio solo andare oltre il codice una volta. Preferirei non passare a C ++ se possiamo aiutarlo.