Use of execl (Arguments)












-3














New to C.
So I have a program called test.c (doesnt need any arguments to start, compiled like this "
gcc test.c -o test")
I want to make my other program execute test
I know I have to use execl but I just cant understand the arguments in the execl function



execl( code here )










share|improve this question




















  • 2




    The args are explained in the Docs. If this doesn't help please be specific which part you don't understand.
    – tkausl
    Nov 11 at 1:55












  • its the syntaxe in writing the arguments
    – Ventura
    Nov 11 at 1:58
















-3














New to C.
So I have a program called test.c (doesnt need any arguments to start, compiled like this "
gcc test.c -o test")
I want to make my other program execute test
I know I have to use execl but I just cant understand the arguments in the execl function



execl( code here )










share|improve this question




















  • 2




    The args are explained in the Docs. If this doesn't help please be specific which part you don't understand.
    – tkausl
    Nov 11 at 1:55












  • its the syntaxe in writing the arguments
    – Ventura
    Nov 11 at 1:58














-3












-3








-3







New to C.
So I have a program called test.c (doesnt need any arguments to start, compiled like this "
gcc test.c -o test")
I want to make my other program execute test
I know I have to use execl but I just cant understand the arguments in the execl function



execl( code here )










share|improve this question















New to C.
So I have a program called test.c (doesnt need any arguments to start, compiled like this "
gcc test.c -o test")
I want to make my other program execute test
I know I have to use execl but I just cant understand the arguments in the execl function



execl( code here )







c execl






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 11 at 2:52

























asked Nov 11 at 1:53









Ventura

85




85








  • 2




    The args are explained in the Docs. If this doesn't help please be specific which part you don't understand.
    – tkausl
    Nov 11 at 1:55












  • its the syntaxe in writing the arguments
    – Ventura
    Nov 11 at 1:58














  • 2




    The args are explained in the Docs. If this doesn't help please be specific which part you don't understand.
    – tkausl
    Nov 11 at 1:55












  • its the syntaxe in writing the arguments
    – Ventura
    Nov 11 at 1:58








2




2




The args are explained in the Docs. If this doesn't help please be specific which part you don't understand.
– tkausl
Nov 11 at 1:55






The args are explained in the Docs. If this doesn't help please be specific which part you don't understand.
– tkausl
Nov 11 at 1:55














its the syntaxe in writing the arguments
– Ventura
Nov 11 at 1:58




its the syntaxe in writing the arguments
– Ventura
Nov 11 at 1:58












1 Answer
1






active

oldest

votes


















1














All the arguments to execle() except the last two are strings — the penultimate one is a null char * marking the end of the command line arguments, and the last is a char ** specifying the environment. The first is the pathname of the executable, relative to the current directory if the name does not start with a / slash. The second argument is the name of the program. Subsequent arguments are the extra arguments for the program (the list is terminated by a (char *)0 argument) and then there's a final argument that is the environment for the program (the trailing e indicates that the environment is passed). Hence, for example:



extern char **environ;    // No header declares this!

execle("teste", "pink elephants", (char *)0, environ);


You could use "teste" or "/bin/bash" in place of "pink elephants", depending on your tastes. Only two of the three program name options suggested are outright fibs. If you replace the environ argument with (char **)0 or equivalent, then the program is invoked with no environment variables, which is usually regarded as an abuse of the program that's run (rather like telling it that it's name is "pink elephants" rather than "teste" is an abuse of it).



You could use variables too:



const char *progname = "teste";

execle(progname, progname, (char *)0, environ);





Ended up using execlp and just writing execlp("./teste",NULL,NULL); only solution that worked.




It's impressive how many (small) problems there can be in a single simple line of code. Using execlp("./teste", NULL, NULL); is dubious on at least these counts:




  1. You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc.

  2. The first NULL is sufficient if you're not going to provide a name; the second is never processed.

  3. Using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have used execle("./teste", (char *)NULL, environ);.

  4. It's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle(). It's not a very likely problem, but #define NULL 0 is legitimate, and if sizeof(int) == 4 but sizeof(char *) == 8, then you could have difficulties.


Aside: you'll probably find the execv*() functions more useful in general than the execl*() functions. At least, my experience is that the variable length argument list is more often needed by the programs I run than a fixed length list.






share|improve this answer























  • Ended up using execlp and just writting execlp './teste",NULL,NULL' only solution that worked
    – Ventura
    Nov 11 at 2:17












  • Using execlp("./teste", NULL, NULL); is dubious on at least three counts: (1) You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc, and (2) the first NULL is sufficient if you're not going to provide a name; the second is never processed, and (3) using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have use execle("./teste", (char *)NULL); — and (4) it's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle().
    – Jonathan Leffler
    Nov 11 at 2:22










  • execle("./teste", (char *) NULL); actually didnt work
    – Ventura
    Nov 11 at 2:30






  • 1




    @Ventura: Yes, it wouldn't; I forgot that the e in execle() means 'environment is passed' and execle("./teste", (char *)NULL); doesn't provide the environment. My bad — I'm sorry. I've fixed the answer. However, using execlp() is pointless when there's a slash in the string in the first argument — the program name. The PATH is never searched then. POSIX gives the synopsis: int execle(const char *path, const char *arg0, ... /*, (char *)0, char *const envp*/); for the function. Note the use of (char *)0 explicitly.
    – Jonathan Leffler
    Nov 11 at 2:33












  • So what would you say its the best approach to solve this problem knowing that this teste.c is in only one directory The path should be something like /directory/test.c
    – Ventura
    Nov 11 at 2:42













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245178%2fuse-of-execl-arguments%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














All the arguments to execle() except the last two are strings — the penultimate one is a null char * marking the end of the command line arguments, and the last is a char ** specifying the environment. The first is the pathname of the executable, relative to the current directory if the name does not start with a / slash. The second argument is the name of the program. Subsequent arguments are the extra arguments for the program (the list is terminated by a (char *)0 argument) and then there's a final argument that is the environment for the program (the trailing e indicates that the environment is passed). Hence, for example:



extern char **environ;    // No header declares this!

execle("teste", "pink elephants", (char *)0, environ);


You could use "teste" or "/bin/bash" in place of "pink elephants", depending on your tastes. Only two of the three program name options suggested are outright fibs. If you replace the environ argument with (char **)0 or equivalent, then the program is invoked with no environment variables, which is usually regarded as an abuse of the program that's run (rather like telling it that it's name is "pink elephants" rather than "teste" is an abuse of it).



You could use variables too:



const char *progname = "teste";

execle(progname, progname, (char *)0, environ);





Ended up using execlp and just writing execlp("./teste",NULL,NULL); only solution that worked.




It's impressive how many (small) problems there can be in a single simple line of code. Using execlp("./teste", NULL, NULL); is dubious on at least these counts:




  1. You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc.

  2. The first NULL is sufficient if you're not going to provide a name; the second is never processed.

  3. Using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have used execle("./teste", (char *)NULL, environ);.

  4. It's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle(). It's not a very likely problem, but #define NULL 0 is legitimate, and if sizeof(int) == 4 but sizeof(char *) == 8, then you could have difficulties.


Aside: you'll probably find the execv*() functions more useful in general than the execl*() functions. At least, my experience is that the variable length argument list is more often needed by the programs I run than a fixed length list.






share|improve this answer























  • Ended up using execlp and just writting execlp './teste",NULL,NULL' only solution that worked
    – Ventura
    Nov 11 at 2:17












  • Using execlp("./teste", NULL, NULL); is dubious on at least three counts: (1) You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc, and (2) the first NULL is sufficient if you're not going to provide a name; the second is never processed, and (3) using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have use execle("./teste", (char *)NULL); — and (4) it's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle().
    – Jonathan Leffler
    Nov 11 at 2:22










  • execle("./teste", (char *) NULL); actually didnt work
    – Ventura
    Nov 11 at 2:30






  • 1




    @Ventura: Yes, it wouldn't; I forgot that the e in execle() means 'environment is passed' and execle("./teste", (char *)NULL); doesn't provide the environment. My bad — I'm sorry. I've fixed the answer. However, using execlp() is pointless when there's a slash in the string in the first argument — the program name. The PATH is never searched then. POSIX gives the synopsis: int execle(const char *path, const char *arg0, ... /*, (char *)0, char *const envp*/); for the function. Note the use of (char *)0 explicitly.
    – Jonathan Leffler
    Nov 11 at 2:33












  • So what would you say its the best approach to solve this problem knowing that this teste.c is in only one directory The path should be something like /directory/test.c
    – Ventura
    Nov 11 at 2:42


















1














All the arguments to execle() except the last two are strings — the penultimate one is a null char * marking the end of the command line arguments, and the last is a char ** specifying the environment. The first is the pathname of the executable, relative to the current directory if the name does not start with a / slash. The second argument is the name of the program. Subsequent arguments are the extra arguments for the program (the list is terminated by a (char *)0 argument) and then there's a final argument that is the environment for the program (the trailing e indicates that the environment is passed). Hence, for example:



extern char **environ;    // No header declares this!

execle("teste", "pink elephants", (char *)0, environ);


You could use "teste" or "/bin/bash" in place of "pink elephants", depending on your tastes. Only two of the three program name options suggested are outright fibs. If you replace the environ argument with (char **)0 or equivalent, then the program is invoked with no environment variables, which is usually regarded as an abuse of the program that's run (rather like telling it that it's name is "pink elephants" rather than "teste" is an abuse of it).



You could use variables too:



const char *progname = "teste";

execle(progname, progname, (char *)0, environ);





Ended up using execlp and just writing execlp("./teste",NULL,NULL); only solution that worked.




It's impressive how many (small) problems there can be in a single simple line of code. Using execlp("./teste", NULL, NULL); is dubious on at least these counts:




  1. You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc.

  2. The first NULL is sufficient if you're not going to provide a name; the second is never processed.

  3. Using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have used execle("./teste", (char *)NULL, environ);.

  4. It's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle(). It's not a very likely problem, but #define NULL 0 is legitimate, and if sizeof(int) == 4 but sizeof(char *) == 8, then you could have difficulties.


Aside: you'll probably find the execv*() functions more useful in general than the execl*() functions. At least, my experience is that the variable length argument list is more often needed by the programs I run than a fixed length list.






share|improve this answer























  • Ended up using execlp and just writting execlp './teste",NULL,NULL' only solution that worked
    – Ventura
    Nov 11 at 2:17












  • Using execlp("./teste", NULL, NULL); is dubious on at least three counts: (1) You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc, and (2) the first NULL is sufficient if you're not going to provide a name; the second is never processed, and (3) using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have use execle("./teste", (char *)NULL); — and (4) it's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle().
    – Jonathan Leffler
    Nov 11 at 2:22










  • execle("./teste", (char *) NULL); actually didnt work
    – Ventura
    Nov 11 at 2:30






  • 1




    @Ventura: Yes, it wouldn't; I forgot that the e in execle() means 'environment is passed' and execle("./teste", (char *)NULL); doesn't provide the environment. My bad — I'm sorry. I've fixed the answer. However, using execlp() is pointless when there's a slash in the string in the first argument — the program name. The PATH is never searched then. POSIX gives the synopsis: int execle(const char *path, const char *arg0, ... /*, (char *)0, char *const envp*/); for the function. Note the use of (char *)0 explicitly.
    – Jonathan Leffler
    Nov 11 at 2:33












  • So what would you say its the best approach to solve this problem knowing that this teste.c is in only one directory The path should be something like /directory/test.c
    – Ventura
    Nov 11 at 2:42
















1












1








1






All the arguments to execle() except the last two are strings — the penultimate one is a null char * marking the end of the command line arguments, and the last is a char ** specifying the environment. The first is the pathname of the executable, relative to the current directory if the name does not start with a / slash. The second argument is the name of the program. Subsequent arguments are the extra arguments for the program (the list is terminated by a (char *)0 argument) and then there's a final argument that is the environment for the program (the trailing e indicates that the environment is passed). Hence, for example:



extern char **environ;    // No header declares this!

execle("teste", "pink elephants", (char *)0, environ);


You could use "teste" or "/bin/bash" in place of "pink elephants", depending on your tastes. Only two of the three program name options suggested are outright fibs. If you replace the environ argument with (char **)0 or equivalent, then the program is invoked with no environment variables, which is usually regarded as an abuse of the program that's run (rather like telling it that it's name is "pink elephants" rather than "teste" is an abuse of it).



You could use variables too:



const char *progname = "teste";

execle(progname, progname, (char *)0, environ);





Ended up using execlp and just writing execlp("./teste",NULL,NULL); only solution that worked.




It's impressive how many (small) problems there can be in a single simple line of code. Using execlp("./teste", NULL, NULL); is dubious on at least these counts:




  1. You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc.

  2. The first NULL is sufficient if you're not going to provide a name; the second is never processed.

  3. Using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have used execle("./teste", (char *)NULL, environ);.

  4. It's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle(). It's not a very likely problem, but #define NULL 0 is legitimate, and if sizeof(int) == 4 but sizeof(char *) == 8, then you could have difficulties.


Aside: you'll probably find the execv*() functions more useful in general than the execl*() functions. At least, my experience is that the variable length argument list is more often needed by the programs I run than a fixed length list.






share|improve this answer














All the arguments to execle() except the last two are strings — the penultimate one is a null char * marking the end of the command line arguments, and the last is a char ** specifying the environment. The first is the pathname of the executable, relative to the current directory if the name does not start with a / slash. The second argument is the name of the program. Subsequent arguments are the extra arguments for the program (the list is terminated by a (char *)0 argument) and then there's a final argument that is the environment for the program (the trailing e indicates that the environment is passed). Hence, for example:



extern char **environ;    // No header declares this!

execle("teste", "pink elephants", (char *)0, environ);


You could use "teste" or "/bin/bash" in place of "pink elephants", depending on your tastes. Only two of the three program name options suggested are outright fibs. If you replace the environ argument with (char **)0 or equivalent, then the program is invoked with no environment variables, which is usually regarded as an abuse of the program that's run (rather like telling it that it's name is "pink elephants" rather than "teste" is an abuse of it).



You could use variables too:



const char *progname = "teste";

execle(progname, progname, (char *)0, environ);





Ended up using execlp and just writing execlp("./teste",NULL,NULL); only solution that worked.




It's impressive how many (small) problems there can be in a single simple line of code. Using execlp("./teste", NULL, NULL); is dubious on at least these counts:




  1. You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc.

  2. The first NULL is sufficient if you're not going to provide a name; the second is never processed.

  3. Using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have used execle("./teste", (char *)NULL, environ);.

  4. It's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle(). It's not a very likely problem, but #define NULL 0 is legitimate, and if sizeof(int) == 4 but sizeof(char *) == 8, then you could have difficulties.


Aside: you'll probably find the execv*() functions more useful in general than the execl*() functions. At least, my experience is that the variable length argument list is more often needed by the programs I run than a fixed length list.







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 11 at 3:23

























answered Nov 11 at 2:12









Jonathan Leffler

559k896651016




559k896651016












  • Ended up using execlp and just writting execlp './teste",NULL,NULL' only solution that worked
    – Ventura
    Nov 11 at 2:17












  • Using execlp("./teste", NULL, NULL); is dubious on at least three counts: (1) You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc, and (2) the first NULL is sufficient if you're not going to provide a name; the second is never processed, and (3) using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have use execle("./teste", (char *)NULL); — and (4) it's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle().
    – Jonathan Leffler
    Nov 11 at 2:22










  • execle("./teste", (char *) NULL); actually didnt work
    – Ventura
    Nov 11 at 2:30






  • 1




    @Ventura: Yes, it wouldn't; I forgot that the e in execle() means 'environment is passed' and execle("./teste", (char *)NULL); doesn't provide the environment. My bad — I'm sorry. I've fixed the answer. However, using execlp() is pointless when there's a slash in the string in the first argument — the program name. The PATH is never searched then. POSIX gives the synopsis: int execle(const char *path, const char *arg0, ... /*, (char *)0, char *const envp*/); for the function. Note the use of (char *)0 explicitly.
    – Jonathan Leffler
    Nov 11 at 2:33












  • So what would you say its the best approach to solve this problem knowing that this teste.c is in only one directory The path should be something like /directory/test.c
    – Ventura
    Nov 11 at 2:42




















  • Ended up using execlp and just writting execlp './teste",NULL,NULL' only solution that worked
    – Ventura
    Nov 11 at 2:17












  • Using execlp("./teste", NULL, NULL); is dubious on at least three counts: (1) You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc, and (2) the first NULL is sufficient if you're not going to provide a name; the second is never processed, and (3) using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have use execle("./teste", (char *)NULL); — and (4) it's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle().
    – Jonathan Leffler
    Nov 11 at 2:22










  • execle("./teste", (char *) NULL); actually didnt work
    – Ventura
    Nov 11 at 2:30






  • 1




    @Ventura: Yes, it wouldn't; I forgot that the e in execle() means 'environment is passed' and execle("./teste", (char *)NULL); doesn't provide the environment. My bad — I'm sorry. I've fixed the answer. However, using execlp() is pointless when there's a slash in the string in the first argument — the program name. The PATH is never searched then. POSIX gives the synopsis: int execle(const char *path, const char *arg0, ... /*, (char *)0, char *const envp*/); for the function. Note the use of (char *)0 explicitly.
    – Jonathan Leffler
    Nov 11 at 2:33












  • So what would you say its the best approach to solve this problem knowing that this teste.c is in only one directory The path should be something like /directory/test.c
    – Ventura
    Nov 11 at 2:42


















Ended up using execlp and just writting execlp './teste",NULL,NULL' only solution that worked
– Ventura
Nov 11 at 2:17






Ended up using execlp and just writting execlp './teste",NULL,NULL' only solution that worked
– Ventura
Nov 11 at 2:17














Using execlp("./teste", NULL, NULL); is dubious on at least three counts: (1) You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc, and (2) the first NULL is sufficient if you're not going to provide a name; the second is never processed, and (3) using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have use execle("./teste", (char *)NULL); — and (4) it's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle().
– Jonathan Leffler
Nov 11 at 2:22




Using execlp("./teste", NULL, NULL); is dubious on at least three counts: (1) You've not provided the executed program with its name, which is discourteous at best and leads to unhelpful error reports, etc, and (2) the first NULL is sufficient if you're not going to provide a name; the second is never processed, and (3) using "./teste" means that the p (path search) part of execlp() is never exercised; you might as well have use execle("./teste", (char *)NULL); — and (4) it's not impossible for NULL not to translate to (char *)0 in a variable argument list like with execle().
– Jonathan Leffler
Nov 11 at 2:22












execle("./teste", (char *) NULL); actually didnt work
– Ventura
Nov 11 at 2:30




execle("./teste", (char *) NULL); actually didnt work
– Ventura
Nov 11 at 2:30




1




1




@Ventura: Yes, it wouldn't; I forgot that the e in execle() means 'environment is passed' and execle("./teste", (char *)NULL); doesn't provide the environment. My bad — I'm sorry. I've fixed the answer. However, using execlp() is pointless when there's a slash in the string in the first argument — the program name. The PATH is never searched then. POSIX gives the synopsis: int execle(const char *path, const char *arg0, ... /*, (char *)0, char *const envp*/); for the function. Note the use of (char *)0 explicitly.
– Jonathan Leffler
Nov 11 at 2:33






@Ventura: Yes, it wouldn't; I forgot that the e in execle() means 'environment is passed' and execle("./teste", (char *)NULL); doesn't provide the environment. My bad — I'm sorry. I've fixed the answer. However, using execlp() is pointless when there's a slash in the string in the first argument — the program name. The PATH is never searched then. POSIX gives the synopsis: int execle(const char *path, const char *arg0, ... /*, (char *)0, char *const envp*/); for the function. Note the use of (char *)0 explicitly.
– Jonathan Leffler
Nov 11 at 2:33














So what would you say its the best approach to solve this problem knowing that this teste.c is in only one directory The path should be something like /directory/test.c
– Ventura
Nov 11 at 2:42






So what would you say its the best approach to solve this problem knowing that this teste.c is in only one directory The path should be something like /directory/test.c
– Ventura
Nov 11 at 2:42




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245178%2fuse-of-execl-arguments%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini