python3 ctypes printf

#coding=utf-8
from ctypes import *;
from platform import *;

cdll_names = {
    'Linux'  :'libc.so.6',
    'Windows':'msvcrt.dll'
    }

system_name = system()
#libc = cdll.LoadLibrary( cdll_names[system_name])
libc = CDLL( cdll_names[system_name])
msg = "Hello, world!\n"
libc.printf(msg)

# encode和decode提供 str 和 unicode 这两种的类型的互相转化。
# encode 把 unicode 转化成 str(byte string)
# decode 把 str(byte string) 转化成 unicode


msvcrt = cdll.msvcrt

# 直接编码成二进制
msvcrt.printf(b'%s',b'hello\n')


# 使用wprintf宽字符显示
msvcrt.wprintf("hello\n")


# 转码成UTF8、GBK编码
str = "中国string encode with Unicode\n"
print(str)
msvcrt.printf(str.encode('gbk'))    #输出: 中国string encode with Unicode
msvcrt.printf(str.encode('utf-8'))  #输出: 涓浗string encode with Unicode

# 
s = create_string_buffer(64)
msvcrt.sprintf(s,b"%s %d",b"hello",123)
print(s.value.decode('utf-8'))
print(s.value.decode())

# 参考:
# http://python.jobbole.com/86670/
# http://blog.sina.com.cn/s/blog_4a94a0db010136oj.html

 

转载于:https://www.cnblogs.com/tinyos/p/7325312.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值