被rpcgen示例代码弄糊涂了
我正在阅读Oracle网站上的RPCgen教程,但不理解示例代码: 为什么“int argc;char*argv[]”放在花括号外?但是,当我运行代码时,编译器没有报告任何错误被rpcgen示例代码弄糊涂了,c,rpc,C,Rpc,我正在阅读Oracle网站上的RPCgen教程,但不理解示例代码: 为什么“int argc;char*argv[]”放在花括号外?但是,当我运行代码时,编译器没有报告任何错误 /* printmsg.c: print a message on the console */ #include <stdio.h> main(argc, argv) int argc; char *argv[]; { char *message; if (argc !
/* printmsg.c: print a message on the console */
#include <stdio.h>
main(argc, argv)
int argc;
char *argv[];
{
char *message;
if (argc != 2) {
fprintf(stderr, "usage: %s <message>\n",
argv[0]);
exit(1);
}
message = argv[1];
if (!printmessage(message)) {
fprintf(stderr,"%s: couldn't print your
message\n",argv[0]);
exit(1);
}
printf("Message Delivered!\n");
exit(0);
}
/* Print a message to the console.
* Return a boolean indicating whether
* the message was actually printed. */
printmessage(msg)
char *msg;
{
FILE *f;
f = fopen("/dev/console", "w");
if (f == (FILE *)NULL) {
return (0);
}
fprintf(f, "%s\n", msg);
fclose(f);
return(1);}
/*printmsg.c:在控制台上打印消息*/
#包括
主(argc、argv)
int-argc;
char*argv[];
{
字符*消息;
如果(argc!=2){
fprintf(标准,“用法:%s\n”,
argv[0]);
出口(1);
}
消息=argv[1];
如果(!打印消息(消息)){
fprintf(标准字符,“%s:无法打印您的
消息\n“,argv[0]);
出口(1);
}
printf(“消息传递!\n”);
出口(0);
}
/*将消息打印到控制台。
*返回一个布尔值,指示
*消息实际上是打印出来的*/
打印消息(msg)
char*msg;
{
文件*f;
f=fopen(“/dev/console”,“w”);
如果(f==(文件*)为空){
返回(0);
}
fprintf(f,“%s\n”,msg);
fclose(f);
返回(1);}
这是一种老式的参数列表语法,由K&R C支持
见此。它相当于
(int-argc,char*argv[])