#python #c #compression #zstd
Вопрос:
Я новичок в C. как получить доступ к сжатому значению строки в zstd с помощью c? Я знаю, как это сделать на python, например:
import zstd
import sys
#string to be compressed
q=b'dcvlnzcndsjlffdfjldfds lfdslffnlklmgkds jsjgsnfklsgklsbfjfdflfkjsfbkhxv vnjfnvjfnfdngkjdfngkjdfkgjdfkgbkjfdgkjdgbkjfgkjfgkjfbgkfdknkjvnfkjvfvmflkvm;flmvsfforiofjreiofjeiorfsdhj'
print("compressed string is...")
w=zstd.compress(q)
print(zstd.compress(q))
print('')
print("decompressed string is...")
print(zstd.decompress(w))
print('')
print('decompressed size is =',sys.getsizeof(q),'compressed size is =',sys.getsizeof(w))
Выход:
compressed string is...
b"(xb5/xfd xb0x85x03x00bx89x17x14xa0xa5xe9xdfx04xe0x88xdc2x93x10Ix9dxe2xf4x0fxab.x1camp;h=x8cbx18x0exd7(x0exa3xb5 xd4@xb9Sxcbxf5xfcxd6xf9uxf6Cx86xf5xc9xbcxf4xbcxf4xa7xd8xaaxafxeaxbaxe0x00x88x93x9a_*xebx12xa3x8fxd1[66x07xc6Oxa1Sxb5d,x05xc6x92\xb6dctx01E'0x05x00Otxbfxcbkxe9xa0sex16xacx98x01"
decompressed string is...
b'dcvlnzcndsjlffdfjldfds lfdslffnlklmgkds jsjgsnfklsgklsbfjfdflfkjsfbkhxvvnjfnvjfnfdngkjdfngkjdfkgjdfkgbkjfdgkjdgbkjfgkjfgkjfbgkfdknkjvnfkjvfvmflkvm;flmvsfforiofjreiofjeiorfsdhj'
decompressed size is = 209 compressed size is = 154 '''
Как сделать то же самое и с языком си?
В C я попробовал dictionary_compression, а также simple_compression, но я могу получить доступ только к размеру, а не к сжатому значению.
Комментарии:
1. «Как я могу использовать API zstd C?» кажется слишком широким вопросом для этого… Начните с чтения документации?
2. Можете ли вы показать нам свой код на С, который не работает, и ошибки, которые вы из него получаете?
3. Взгляните на этот пример .