-5

なぜ私は成功しないのですか

 int main(char* name,int arg0,int arg1)
 {
   name = "/u/e2014/Desktop/os/Prog.c";
   arg0 = 0;
   arg1 = 1;

   char my_args[3];
   my_args[0] = arg0;
   my_args[1] = arg1;
   my_args[2] = NULL;
   execl(name,m_args);

   return(0);
  }

ここに画像の説明を入力

私のプログラムがパス「名前」でプログラムを実行することを望みます。今は何もしません。

どこが間違っているのかわかりませんか?Linux で C でプログラミングし、gcc でコンパイルします。

どうもありがとう!!

4

2 に答える 2

1

gcc には main 関数用に 3 つの異なる署名があります

int main(void);
int main(int argc, char* argv[]);
int main(int argc, char *argv[], char *envp[]);

あなたの主な機能は、これらのいずれとも一致しません。したがって、コンパイラ エラー。

あなたの場合、小さな変更を加えて2番目の署名を使用できます。

#include <stdlib.h>

int main(int argc, char **argv)
{
    char *path;
    int int1, int2;

    path = argv[1];
    int1 = atoi(argv[2]);
    int2 = atoi(argv[3]);
}
于 2016-11-23T09:15:31.823 に答える