协议名称处理函数xxxprotoxxx()
为了方便操作,Linux提供了一组用于查询协议的值及名称的函数。
xxxprotoxxx()函数:

上面的函数对文件/etc/protocols中的记录进行操作,文件中记录了协议的名称、值和别名等值,与struct protoent的定义一致。

使用协议族函数的例子:
首先,使用setprotoent(1)打开文件/etc/protocols,然后使用函数getprotobyname()查询函数并显示出来,最后使用函数endprotoent()关闭文件/etc/protocols。
#include <netdb.h>
#include <stdio.h> void
display_protocol(struct protoent *pt)
{
int i = 0; if(pt)
{
printf("protocol name: %s", pt->p_name);
if(pt->p_aliases)
{
printf("alias name:");
while(pt->p_aliases[i])
{
printf("%s ", pt->p_aliases[i]);
i++;
}
}
printf(", value: %d\n", pt->p_proto);
}
} int
main(int argc, char **argv)
{
int i = 0; const char *const protocol_name[] = { "ip", "icmp", "tcp", "udp", NULL }; setprotoent(1);
while(protocol_name[i] != NULL)
{
struct protoent *pt = getprotobyname((const char *)&protocol_name[i][0]);
if(pt)
{
display_protocol(pt);
}
i++;
}
endprotoent();
return(0);
}
运行结果:

协议名称处理函数xxxprotoxxx()的更多相关文章
- Objective-C学习笔记 利用协议实现回调函数
		来源:http://mobile.51cto.com/iphone-278354.htm Objective-C学习笔记 利用协议实现回调函数是本文要介绍的内容,主要是实现一个显示文字为测试的视图,然 ... 
- Python函数02/函数的动态参数/函数的注释/名称空间/函数的嵌套/global以及nolocal的用法
		Python函数02/函数的动态参数/函数的注释/名称空间/函数的嵌套/global以及nolocal的用法 目录 Python函数02/函数的动态参数/函数的注释/名称空间/函数的嵌套/global ... 
- 函数的名称空间,函数的嵌套(global, nonlocal),函数名的运用
		一 函数的名称空间 内置空间:存放python解释器内置函数的空间 全局空间:py文件运行时开辟的,存放的是执行的py文件(出去函数内部)的所有的变量与值的对用关系,整个py文件结束后才会消失. 局部 ... 
- 关于freemodbus协议中eMBFuncReadHoldingRegister()函数的所谓错误
		摘要:网上看到有好心的网友提示,freemodbus协议中的mbfuncholding.c 文件中eMBFuncReadHoldingRegister()函数,有一处错误,即:第185行的" ... 
- [BJDCTF2020]ZJCTF,不过如此   php伪协议, preg_replace() 函数/e模式
		转自https://www.cnblogs.com/gaonuoqi/p/12499623.html 题目给了源码 <?php error_reporting(0); $text = $_GET ... 
- NodeJs获取函数名称和函数操作整理
		var aa = function () { log("xxxx"); }; aa(); var model = {}; model.test = function () { lo ... 
- 1211笔记关于//modal//更改窗口的根控制器//数据存取//Plist属性列表//-“沙盒机制”//plis属性列表//偏好设置//归档普通对象//联系人数据存储//协议与回调函数
		一.利用Modal形式展示控制器 1.如何展示// vc就是要展示的新控制器[self presentViewController:vc animated:YES completion:^{ N ... 
- 网络子系统42_ip协议处理函数_数据帧的接收
		//向协议栈注册l3处理函数 1.1 void dev_add_pack(struct packet_type *pt) { int hash; //ptype_all ptype_base共用一把锁 ... 
- day12 函数对象,名称空间与作用域
		""" 今日内容: 1.函数参数传值细节 2.三元表达式 3.列表及字典推导式 4.函数对象 5.名称空间与作用域 6.函数的嵌套定义初识 ""&qu ... 
随机推荐
- 【推导】【贪心】【高精度】Gym - 101194E - Bet
			题意:每个队伍有个赔率pi,如果你往他身上押x元,它赢了,那么你得到x+(1/pi)x元,否则你一分都得不到.问你最多选几支队伍去押,使得存在一种押的方案,不论你押的那几支队伍谁赢,你都能赚得到钱. ... 
- 【KM】BZOJ1937 [Shoi2004]Mst 最小生成树
			这道题拖了好久因为懒,结果1A了,惊讶∑( 口 || [题目大意] 给定一张n个顶点m条边的有权无向图.现要修改各边边权,使得给出n-1条边是这张图的最小生成树,代价为变化量的绝对值.求最小代价之和. ... 
- Android背后的设计思想——功能共享机制
			Android的系统设计,与别的智能手机操作系统有很大区别,甚至在以往的任何操作系统里,很难找到像Android这样进行全面地系统级创新的操作系统.从创新层面上来说,Android编程上的思想和支持这 ... 
- Codeforces Beta Round #6 (Div. 2 Only) A. Triangle 水题
			A. Triangle 题目连接: http://codeforces.com/contest/6/problem/A Description Johnny has a younger sister ... 
- 也谈时间管理和GTD
			也谈时间管理和GTD 时间管理 随着事情越来约多发现时间越来越不够用了,但是其实每天时间都是恒定的,并不增也不减,所以感觉时间不够用了总归只是个人主观感觉. 对我个人帮助比较大的是三本书<番茄时 ... 
- 模板引擎之hogan.js
			hogan.js 语法简单,且支持循环数据: 基本语法: 1. 标签可以嵌套使用 2. {{data}} 转义的变量,不会渲染html标签 3. {{{data}}} 不转义的变量,会渲染html标签 ... 
- TPS61040/61041 开关电源稳压器(DC-DC) ADJUST
			Variable Control Voltage Output Voltage Adjust This method is accomplished by connecting a variable ... 
- HTTP Error 404.2 - Not Found The page you are requesting cannot be served because of the ISAPI and CGI Restriction list settings on the Web server(转)
			今天公司的同事問我,為什麼同一支程式在自己的電腦OK,部署到Server上會出現下面的錯誤 我想,沒有錯啊~ 我在這台Server所部署的程式一向都是OK的 看了錯誤的Error page, 發現是I ... 
- Java中23种经典设计模式详解
			Java中23种设计模式目录1. 设计模式 31.1 创建型模式 41.1.1 工厂方法 41.1.2 抽象工厂 61.1.3 建造者模式 101.1.4 单态模式 131.1.5 原型模式 151. ... 
- 第十三章 Openwrt 修改串口波特率 以适应普通51不支持  115200高速率
			,单片机或arduino的串口波特率可自行设置.当然,一般都会设置9600,也可以设置为115200.假设现在openwrt波特率为115200,单片机的串口波特率为9600.要进行一个通信,该如何设 ... 
