14.14.1.5 続・関数を呼び出す

printfはsys.stdoutではなく、本物の標準出力チャンネルへ プリントすることに注意してください。したがって、これらの例は コンソールプロンプトでのみ動作し、IDLEPythonWinでは動作しません:

>>> printf = libc.printf
>>> printf("Hello, %s\n", "World!")
Hello, World!
14
>>> printf("Hello, %S", u"World!")
Hello, World!
13
>>> printf("%d bottles of beer\n", 42)
42 bottles of beer
19
>>> printf("%f bottles of beer\n", 42.5)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ArgumentError: argument 2: exceptions.TypeError: Don't know how to convert parameter 2
>>>

前に述べたように、必要なCのデータ型へ変換できるようにするためには、 整数、文字列およびユニコード文字列を除くすべてのPython型を 対応するctypes型でラップしなければなりません:

>>> printf("An int %d, a double %f\n", 1234, c_double(3.14))
Integer 1234, double 3.1400001049
31
>>>

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。