prototype de fonction execle

J’ai récemment étudié la programmation système Unix. Je suis tombé sur cela dans la page de manuel de exec ,

int execle(const char *path, const char *arg,..., char * const envp[]);

Comment ce prototype de fonction a-t-il un ... au milieu? Ce ne sera même pas comstackr!

Quelqu’un peut-il expliquer ce prototype s’il vous plaît?

Je pense que cela est juste là pour les utilisateurs à voir et il y a une implémentation interne différente. Ceci est juste une supposition et je ne suis pas sûr à ce sujet.

Je pense que c’est juste là pour les utilisateurs de voir

En supposant que vous êtes confus par le envp [], vous auriez raison. Si nous regardons la documentation POSIX , nous trouvons que le prototype réel devrait être:

 int execle(const char *, const char *, ...); 

Et en effet, si vous consultez unistd.h sur votre système, vous trouverez probablement quelque chose de cette forme:

 //glibc extern int execle (__const char *__path, __const char *__arg, ...) __THROW __nonnull ((1, 2)); //musl int execle(const char *, const char *, ...); //cygwin int _EXFUN(execle, (const char *__path, const char *, ... ));