argc和argv没有运行

时间:2016-04-19 15:11:17

标签: c linux pid

我试图在Ubuntu下运行此代码,但是当我运行以下代码时:

<?xml version="1.0" encoding="utf-8"?>
<traceSettings>
  <MQTRACELEVEL>2</MQTRACELEVEL>
  <MQTRACEPATH>C:\MQTRACEPATH</MQTRACEPATH>
  <MQERRORPATH>C:\MQERRORLOGPATH</MQERRORPATH>
</traceSettings>

它说

#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);
}

3 个答案:

答案 0 :(得分:2)

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

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

}

答案 1 :(得分:0)

您使用agrv输了一个拼写错误,而主要的签名是int main(int argv, char *argv[])

argv是一个以char *终止的NULL数组。数组中除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);
}

答案 2 :(得分:0)

问题在于main()

的功能标题

应该是这样的。

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

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