-4

この execl コマンドを C プログラムで実行しようとしていますが、うまくいきません。

execl("~/Desktop/taskc/validating/analyzer/numbers_analyzer", "numbers_analyzer", (char*)NULL);

bash: syntax error near unexpected token `"~/Desktop/taskc/validating/analyzer/numbers_analyzer",

インターネットで見つけたいくつかの検証例も試してみましたが、それらも機能しません。(私はいつも同じエラーが発生しています)

execl( "/bin/ls", "/bin/ls", argv[1], NULL );
bash: syntax error near unexpected token `"/bin/ls",'

execl("/bin/date", "date", 0, 0);
bash: syntax error near unexpected token `"/bin/date",'

ありがとうございます。

4

2 に答える 2

5

C 関数呼び出しをシェルに直接入力しようとすると、次のようなエラー メッセージが表示されます。

[dbush] execl("/bin/date", "date", 0, 0);
-bash: syntax error near unexpected token `"/bin/date",'
[dbush]

コードを実際の C プログラムに入れ、コンパイルして実行する必要があります。

#include <stdio.h>
#include <unistd.h>

int main()
{
    // the last argument should be a NULL pointer to signal the end of the arg list
    execl("/bin/date", "date", NULL);
}

出力:

[dbush] gcc  -g -o /tmp/x1 /tmp/x1.c
[dbush] /tmp/x1
Tue Nov 24 20:11:54 UTC 2015
于 2015-11-24T20:12:36.430 に答える