In the following prototype :

```
int __libc_start_main( int (*main) (int, char * *, char * *),
    int argc, 
    char **ubp_av, 
    void (*init) (void),
    void (*fini) (void),
    void (*rtld_fini) (void),
    void (* stack_end) );

```

Why does `ubp_av` appear and not `argv`?  

And what does `ubp_av` mean?