在 Linux 中,sprintf_s
是一個安全的字符串格式化函數,它用于將格式化的數據寫入字符數組
sprintf_s
函數返回一個整數,表示成功寫入的字符數。如果返回值與預期相符(即等于或大于預期輸出的字符數),則表示執行成功。例如:#include <stdio.h>
int main() {
char buffer[10];
int result = sprintf_s(buffer, sizeof(buffer), "Hello, %s!", "World");
if (result > 0) {
printf("sprintf_s executed successfully. Result: %d\n", result);
} else {
printf("sprintf_s failed.\n");
}
return 0;
}
sprintf_s
函數在遇到錯誤時會設置一個內部錯誤代碼。你可以使用 strerror_s
函數來獲取描述錯誤的字符串。例如:#include <stdio.h>
#include <string.h>
int main() {
char buffer[10];
int result = sprintf_s(buffer, sizeof(buffer), "Hello, %s!", "World");
if (result > 0) {
printf("sprintf_s executed successfully. Result: %d\n", result);
} else {
printf("sprintf_s failed. Error code: %d\n", errno);
char error_message[1024];
strerror_s(error_message, sizeof(error_message), errno);
printf("Error message: %s\n", error_message);
}
return 0;
}
請注意,sprintf_s
是 C11 標準中的函數,可能在某些編譯器中不可用。在這種情況下,你可以使用 snprintf
函數作為替代。snprintf
的用法與 sprintf_s
類似,但不需要檢查緩沖區溢出。