windows平台下線程安全的格式化字符串函數sprint_s並非標准C函數,因此linux下無法使用,但可以使用snprintf函數代替。
/*函數原型:*/ int snprintf(char *dest, size_t n, const char *fmt, ...); /*函數說明: 最多從源串中拷貝n-1個字符到目標串中,然后再在后面加一個0。所以如果目標串的大小為n的話,將不會溢出。 函數返回值: 若成功則返回存入數組的字符數,若編碼出錯則返回負值。 推薦的用法:*/ void f(const char *p) { char buf[11]={0}; snprintf(buf, sizeof(buf), "%10s", p); // 注意:這里第2個參數應當用sizeof(str),而不要使用硬編碼11,也不應當使用sizeof(str)-1或10 printf("%sn",buf); }