我剛剛開始學習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