snprintf()
Menulis string terformat ke array karakter dengan pembatasan ukuran dalam C
Fungsi snprintf()
digunakan untuk menulis data terformat ke dalam sebuah array karakter (buffer) dengan batasan ukuran maksimum yang dituliskan. Fungsi ini mirip dengan sprintf()
, namun dengan kelebihan mencegah buffer overflow karena jumlah karakter yang dituliskan tidak akan melebihi ukuran buffer yang diberikan.
Sintaks
str
➜ Array karakter (buffer) tempat string hasil format disimpan.size
➜ Ukuran maksimum buffer dalam byte (termasuk karakter null'\0'
).format
➜ String format yang menentukan bagaimana data akan diubah menjadi teks....
➜ Argumen tambahan yang akan disisipkan ke dalam string format.Mengembalikan: Jumlah karakter yang akan dituliskan jika buffer cukup besar (tidak termasuk karakter null), atau nilai negatif jika terjadi error.
Penjelasan
Pembatasan Ukuran Buffer: Fungsi ini memastikan bahwa tidak lebih dari
size - 1
karakter (ditambah satu untuk karakter null) akan ditulis ke dalam buffer. Ini membantu mencegah terjadinya buffer overflow.Output Terpotong: Jika jumlah karakter yang akan dituliskan melebihi ukuran buffer, string akan dipotong sehingga hanya sebagian yang dituliskan, namun buffer selalu diakhiri dengan karakter null (
'\0'
).Nilai Kembalian: Fungsi mengembalikan jumlah karakter yang seharusnya dituliskan jika buffer cukup besar. Jika nilai yang dikembalikan lebih besar atau sama dengan
size
, berarti terjadi pemotongan output karena buffer tidak cukup besar.
Contoh Penggunaan
Hasilnya:
Last updated