printf()のような、可変長引数を取る関数にパラメータを渡したいのです。
下のような例の場合はどうすればよいのでしょうか?

void foo (const char *format, ...) { /* xxx */ }
/* void vfoo (const char *format, va_list ap) { } */

void bar(int numargs, char *argv[]) /*ここは自分で変えられない*/
{
    /*foo()かvfoo()を呼びたい*/
    /*vfoo(args[0], args[1:]); のようなことがしたい。*/
    /*つまりfoo(args[0], args[1]、args[2], args[3], ...args[numargs -1]); のようなことがしたい。*/
}

numargsとargsからva_listを作ることはできますか?