ctypes - python: calling sequence of functions -


from ctypes import cdll  libc = cdll.msvcrt message = "hello world!\n" length = libc.printf("printing msvcrt: %s", message) print length 

the result of code above:

33 printing msvcrt: hello world! 

why length of string printed first, rather string itself?

you using 2 separate instances of c runtime libraries. msvcrt.dll , whatever version python linked to. python 2.7 version uses msvcr90.dll, visual studio 2008.

this means there 2 separate instances of buffered stdout, , in case python's buffered i/o flushing before other instance. not reproduce output of script.


Comments