-1

インタプリタファイルを介してプログラムを実行しようとしました。C で fork() および execl() 関数を使用しました。これが私のコードです。

    if ((pid = fork()) < 0)
        printf("fork error");
    else if (pid == 0) {     /* child */
        if (execl( "/home/alien/testinterp",         /* the interpreter file */
                   "testinterp", "arg1", (char *)0) < 0)
            printf("execl error");

ファイル「/home/alien/testinterp」には、次のものがあります。

#!/bin/sh

シェルで /bin/sh を実行できます。Emacs を使用してインタープリター ファイルを編集しました。

プログラムを実行すると、エラーが発生します (「execl エラー」)。

私は何を間違っていますか?

4

1 に答える 1