int main(void)
{
execl("echo", "test");
return 0;
}
I want to execute command echo test with execl
Why ? Because i can't use system()
i have some reasons
What is wrong ?
このexecl
関数は、シェルのように PATH でコマンドを検索しないため、完全なパスを指定する必要がありますecho
(または、現在の作業ディレクトリからの相対パスを指定する必要があります)。また、引数リストの最初の引数は実行可能ファイルのファイル名である必要があり、最後の引数はNULL
、渡そうとしている引数の数を execl が把握できるようにする必要があります。
これは私のために働く:
#include <unistd.h>
int main(void)
{
execl("/bin/echo", "/bin/echo", "test", NULL);
return 0;
}
を実行して、システム上のwhich echo
どこにあるかを調べることができます。echo
それは私のものとは異なる可能性があり、コードを編集する必要があります。