argc 和 argv 不是 运行

argc and argv aren't running

我正在尝试 运行 此代码 Ubuntu,但是当我 运行 下面的代码时:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>

int main(int argc , char agrv[3]){
  int pid ,sig;
  sig = atoi( argv[1]);
  pid = atoi( argv[2]);
  kill(pid,sig);
  return(0);
}

它说

ex02.c:10:13: error: ‘argv’ undeclared (first use in this function)
 sig = atoi( argv[1]);

您打错了 agrv,main 的签名是 int main(int argv, char *argv[])

argv 是以 NULL 结尾的 char * 数组。数组中直到 NULL 的每个元素代表命令行中的一个字符串。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>

int main(int argc, char *argv[]){
  int pid, sig;
  sig = atoi(argv[1]);
  pid = atoi(argv[2]);
  kill(pid, sig);
  return(0);
}

你在main的定义行中犯了错误,argvchar*个字符串的数组

int main(int argc, char *argv[])
{
/*
other code here
*/

}

问题出在你main()的函数头上。

应该是这样的

int main(int argc, char *argv[])
{
    //Function Body
    return 0;
}

形式参数 argv 是一个 array of pointers to char。每个指向 char 的指针都包含一个传递给程序的参数(另外,程序的名称将由 argv[0] 指向)。