我刚刚开始学习C编程和练习,我发现这个任务。首先,我必须以协议名义进行扫描。然后我必须检查协议的官方名称,编号和别名。所以,如果我输入TCP输出应该是这样的:
官方名称:TCP
原号码:6
别名TCPc getprotobyname获取协议信息
这就是我这么远。当我运行它并输入ip或tcp时,它不会给我任何错误。但它说协议没有找到。
在此先感谢您的帮助。
#include <netdb.h>
#include <stdio.h>
int main(){
char name[200];
int i;
struct protoent *proto = getprotobyname(name);
printf("Enter protocol name: ");
scanf("%c", name);
proto = getprotobyname(name);
if (proto != NULL)
{
printf("official name: %s\n", proto->p_name);
printf("proto number: %d\n", proto->p_proto);
for (i = 0; proto->p_aliases[i] != 0; i++){
printf("alias: %s\n", proto->p_aliases[i]);
}
}
else{
perror("protocol not found");
}
return 0;
}
错误1:'getprotobyname(名);'被称为两个时间一个before'name'初始化,第二个是后it.and错误2:'scanf(“%c”,name);'必须是'scanf(“%s”,name);' – 2014-09-29 10:48:18