sprintf fprintf printf vprintf 等之间的区别是什么?该怎么解决

sprintf fprintf printf vprintf 等之间的区别是什么?
如题:请精辟的概括!

------解决方案--------------------
sprintf向buffer中填充数据
fprintf向文件中定数据
printf向stdout写数据
vprint也向stdout写数据, 但用的是va_list