C libnids 笔记

  1. 关于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); 

  2. sprintf和strcat函数

      sprintf(buf + strlen(buf), ",%i,", addr.source);
      strcat(buf, int_ntoa(addr.daddr));

      如果要以某种格式输出到buf中则用sprintf,如果是直接连接到buf后面则用strcat

  3. char *strcpy(char* dest, const char *src);

     

      功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

      说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

      返回指向dest的指针。

4. #ifdef

#ifdef语句1
//程序2
#endif
 

可翻译为:如果宏定义了语句1则执行程序2。

作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。


你可能感兴趣的:(c)