您的位置:首页 > 其它

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。
作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: