欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

將截斷字符串或二進制數據

傅智翔2年前16瀏覽0評論

將截斷字符串或二進制數據?

在 C 語言中,字符串里面不能包含空字符,否則這個空字符會被當做是字符串結尾,換句話說,C 語言的字符串默認是以 '\0' 結尾的,這不是二進制安全的,因為圖片、音頻等二進制數據里面會有 '\0' 這一字符,C 字符串會忽略 '\0' 這一字符后面的數據。在 Redis 中,有這樣一個結構:

它是用來表示字符串值的,稱為 SDS(simple dynamic string), buf 是一個 char 類型的數組,用來保存二進制數據,len 記錄字符串的長度(不一定是 buf 數組的長度),SDS 不使用空字符串,而是使用 len 的值來判斷字符串是否結束,因此 Redis 可以保存特殊數據格式,包括二進制數據。

如果要給二進制安全一個定義的話,可以這樣描述:一個函數或方法能將任意輸入作為原始的,無任何特殊格式意義的數據流,那么它就是二進制安全的。