vfprintf etc don't take variable argument lists, but have one parameter of type va_list that points to a variable argument list. since you're outside the APE environment (or it would be using /sys/include/ape/stdio.h) you need to include before , as for nearly any other Plan 9 include file (despite the comment to the contrary in intro(2)). in practice, you'll typically also need for any real program (eg, to declare exits).