2016-02-18 25 views
5

Windows'tan C++ kodunu Linux altında çalışmak üzere dönüştürüyorum ve bu işlevi "vsprintf_s" ile karşılaştım. Microsoft'a özgü bir işlevdir, bu yüzden Linux'ta bir değişiklik olup olmadığını sormak isterim. TeşekkürlerDeğiştirme?

+3

Bkz. [TR 24731 'güvenli' işlevlerini kullanıyor musunuz?] (Https://stackoverflow.com/questions/372980/do-you-use-the-tr-24731-safe-functions) hakkında bilgi için bkz. '* _s()', Microsoft dışı kütüphaneler aracılığıyla doğrudan erişilemeyen işlevler - örneğin, Linux veya Mac OS X'te mevcut değildir. Hayır, doğrudan mevcut değildir. 'Vsnprintf()' ile oldukça yakın olabilirsiniz, ancak çağrı dizilerinde (çoklu farklılıklar) kesinlikle farklılıklar vardır. –

+1

Bkz. [This] (http://stackoverflow.com/questions/4785381/replacement-for-ms-vscprintf-on-macos-linux). – Martin

+0

@Martin bağlantısı, vsprintf_s –

cevap

3

vsnprintf(), linux.die.net'a göre uygun bir yedek olabilir.

+3

'den farklı olan _vscprintf işlevi için sorunu çözer. Bu yakındır, ancak taşma işleme davranışları oldukça farklıdır. 'vsprintf_s', taşma teşebbüsünde programı iptal ediyor. 'vsnprintf' çıktıyı keser ve devam eder. – user4581301