我试图在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);
}
答案 0 :(得分:2)
你在main
的定义行中犯了错误,argv
是char*
字符串数组
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]指向)。