0
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 ?

4

1 に答える 1

3

このexecl関数は、シェルのように PATH でコマンドを検索しないため、完全なパスを指定する必要がありますecho(または、現在の作業ディレクトリからの相対パスを指定する必要があります)。また、引数リストの最初の引数は実行可能ファイルのファイル名である必要があり、最後の引数はNULL、渡そうとしている引数の数を execl が把握できるようにする必要があります。

これは私のために働く:

#include <unistd.h>

int main(void)
{
    execl("/bin/echo", "/bin/echo", "test", NULL);
    return 0;
}

を実行して、システム上のwhich echoどこにあるかを調べることができます。echoそれは私のものとは異なる可能性があり、コードを編集する必要があります。

于 2016-04-30T00:27:11.550 に答える