can you explain this process step by step?
<p>This is the original code and I want to pass all the arguments through <code>ivlpp_main</code> using <code>argc</code> and <code>argv</code>.</p>

<pre><code>static void build_preprocess_command(int e_flag)
{
    ivlpp_main(argc, argv);
    snprintf(tmp, sizeof tmp, "%s%civlpp %s%s -F\"%s\" -f\"%s\" -p\"%s\" ",
               pbase, sep, verbose_flag?" -v":"",
               e_flag?"":" -L", defines_path, source_path,
               compiled_defines_path);    
}
</code></pre>

<p>This is my code</p>

<pre><code>static void build_preprocess_command(int e_flag)
{
    char  arg0[] = "%s%civlpp";
    char  arg1[] = "%s%s";
    char  arg2[] = "-F\”%s\”";
    char  arg3[] = "-f\”%s\”";
    char  arg4[] = "-p\”%s\”";
    char  arg5[] = "-v";
    char  arg6[] = "-L";
    char **argv[] = { &amp;arg0[0], &amp;arg1[0], &amp;arg2[0], &amp;arg3[0], &amp;arg4[0], &amp;arg5[0], &amp;arg6[0],  NULL };
    int   argc   = 7;//(int)(sizeof(argv) / sizeof(argv[0])) - 1;
    ivlpp_main(argc,argv);
}
</code></pre>
