14.14.1.5 Calling functions, continued

###
14.14.1.5 Calling functions, continued

Note that printf prints to the real standard output channel, not to `sys.stdout`, so these examples will only work at the console prompt, not from within IDLE or PythonWin:

    >>> 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
    >>>

As has been mentioned before, all Python types except integers, strings, and unicode strings have to be wrapped in their corresponding `ctypes` type, so that they can be converted to the required C data type:

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