C libnids 笔记
2015-06-25 10:16
281 查看
关于32位u_int和32位u_long转换为char*
struct in_addr
{
in_addr_t s_addr;
};
结构体in_addr 用来表示一个32位的IPv4地址.
in_addr_t 一般为 32位的unsigned long.
其中每8位代表一个IP地址位中的一个数值.
例如192.168.3.144记为0xc0a80390,其中 c0 为192 ,a8 为 168, 03 为 3 , 90 为 144
打印的时候可以调用inet_ntoa()函数将其转换为char *类型.
in_addr_t x;
z = inet_ntoa(*(struct in_addr *)&x);
sprintf和strcat函数
sprintf(buf + strlen(buf), ",%i,", addr.source);
strcat(buf, int_ntoa(addr.daddr));
如果要以某种格式输出到buf中则用sprintf,如果是直接连接到buf后面则用strcat
char *strcpy(char* dest, const char *src);
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
4. #ifdef
#ifdef语句1
//程序2
#endif
可翻译为:如果宏定义了语句1则执行程序2。
作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。
struct in_addr
{
in_addr_t s_addr;
};
结构体in_addr 用来表示一个32位的IPv4地址.
in_addr_t 一般为 32位的unsigned long.
其中每8位代表一个IP地址位中的一个数值.
例如192.168.3.144记为0xc0a80390,其中 c0 为192 ,a8 为 168, 03 为 3 , 90 为 144
打印的时候可以调用inet_ntoa()函数将其转换为char *类型.
in_addr_t x;
z = inet_ntoa(*(struct in_addr *)&x);
sprintf和strcat函数
sprintf(buf + strlen(buf), ",%i,", addr.source);
strcat(buf, int_ntoa(addr.daddr));
如果要以某种格式输出到buf中则用sprintf,如果是直接连接到buf后面则用strcat
char *strcpy(char* dest, const char *src);
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
4. #ifdef
#ifdef语句1
//程序2
#endif
可翻译为:如果宏定义了语句1则执行程序2。
作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。
相关文章推荐
- 如何防止应用因获取IDFA被AppStore拒绝
- 八皇后问题
- bzoj3510: 首都
- 八皇后问题
- A brief introduction to C++ and Interfacing with Excel
- Eclipse Tomcat配置 一
- hdu 3549
- How to pass string parameters to an TADOQuery?
- 异常处理语句
- delphi日期格式化免操作系统依赖单元
- BZOJ4060 : [Cerc2012]Word equations
- 《Java程序设计》第16周周四:GUI编程及文件对话框的使用 项目1
- android DefaultHttpClient设置setCookieStore
- JAVA设计模式(21):行为型-迭代器模式(Iterator)
- Merge Intervals
- VB获取文件大小的方法
- Ajax中解析Json的两种方法对比分析
- Memcache教程
- C++实现MVC模式
- 引用和指针的比较