当前位置:  技术问答>linux和unix

关于《unix网络编程》中路由套接口那一章的一个问题

    来源: 互联网  发布时间:2016-06-07

    本文导语:  在看第十八章 路由套接口中 在图18.9那段程序中有一个关于移动指针的宏看不懂。中文版P424 #define ROUNDUP(a,size) (((a)&((size)-1))?(1+((a)|((size)-1))):(a)) #define NEXT_SA(ap) ap=(SA*) ((caddr_t)ap+(ap->sa_len?ROUNDUP(ap->sa_len,sizeof(u_long)):...

在看第十八章 路由套接口中
在图18.9那段程序中有一个关于移动指针的宏看不懂。中文版P424

#define ROUNDUP(a,size) (((a)&((size)-1))?(1+((a)|((size)-1))):(a))
#define NEXT_SA(ap) ap=(SA*)
((caddr_t)ap+(ap->sa_len?ROUNDUP(ap->sa_len,sizeof(u_long)):sizeof(u_long)))\这个宏还好理解,就是那个ROUNDUP,实在是看不懂




就是rt_msghdr结构体后跟了很多套接口结构,由于这些套接口结构都是变长的,所以需要用这些宏,来从这些结构体移到下一个结构体

|
假定 a 为 char *, size 为 int,貌似等价于:

int roundup(char *a, int size)
{
    if (a & (size - 1)) {
       a |= (size - 1);
       a += 1;
    }

    return a;
}


一般 size 为 2 的 n 次方,roundup 用于将 a 向上取整到 size 的整数倍

    
 
 

您可能感兴趣的文章:

  • [求助]关于unix域套接字
  • 类unix系统编写大规模响应网络服务程序使用什么套接字模型
  • Unix Domain套接字的Java包 junixsocket
  • 浙ICP备11055608号-3 iis7站长之家
  • 请问在Unix/Linux上的套接字模型有那些,那些比较常用,Apache使用的是那个,谢谢?!如果能和Windows上的作对比就更好了
  • unix域套接口用法
  • 请问在UNIX下可同时使用的套接字有没有限制?如果有,大概是多少? 谢谢!
  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • UNIX网络编程卷1
  • 请问unix网络编程和linux网络有什么区别
  • 谁知道哪有《Unix网络编程》w.richard stevens 著的下载?
  • 求关于UNIX网络编程的好书 最好带项目的那种
  • Unix/Linux网络编程怎样来做一个项目?
  • 请推荐几本Linux/Unix网络编程的好书吧
  • unix网络编程资料帮忙 大哥大姐进来瞧瞧啊
  • 学UNIX网络编程,看哪些书好?大家各抒已见~
  • 《UNIX网络编程》这本书适合linux下的网络编程吗?
  • 看完了<unix网络编程>后
  • Unix/Linux网络编程可以用来做什么?一般从事什么样的职业?
  • 求助:linux/unix网络编程
  • 运行<<UNIX网络编程卷一>>中程序的错误?
  • 哪里有steven的UNIX网络编程源码?
  • 谁知道哪里有unix网络编程第一卷和第二卷电子版的下载?
  • 哪有unix下的c网络编程,如地址有效,我一次性给50分
  • 哪位好人能告诉我哪儿有《UNIX网络编程2版1卷》下载?????
  • unix网络编程中err_quit()是什么函数?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 路由器配置:有一局域网(SCO UNIX 5.0.5)与一台主机(SCO UNIX 5.0.5)通过祯中继联接。路由器(CISCO2610作主节点)在局域的IP为IPa,广
  • sco unix 5.0.5 路由问题
  • 用宽带路由器上网;liunx与unix的区别
  • SCO UNIX下路由怎么设置?怎样使用代理服务器上网?(急啥!)
  • UNIX里如何添加一条IP 如何增加一条路由啊?求命令行。
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • unix/Linux下c++ boost thread库读写锁介绍
  • 没有unix系统我如何学习unix
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • php将unix时间戳转换成字符串时间函数(date)
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • UNIX特急!!!digital unix问题,请专家快来!!!
  • UNIX支持中文否,请推荐UNIX好书
  • SCO UNIX 5.0用软盘启动之后无法启动UNIX
  • 散分!!unix 用户调查!!!你使用哪款unix
  • hp unix 和 sco unix的区别
  • 入门问题,我想向UNIX编程方向发展,单目前不会UNIX,我该如何做
  • 强烈建议将linux/Unix栏目放到“软件开发者”大类里面来。----Unix开发的人助威支持!!!
  • 现在那些unix比较流行?Linux和 Unix有 什么区别?
  • 小问题, Unix 如何建立一个文件 ,unix 文件有后缀名吗
  • 我想学习Unix,请高手给个下载网址,用linux来学习Unix差别大吗?
  • 请问各位unix大虾,哪有免费的unix下载?
  • 学UNIX从SOC UNIX开始好吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3