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

一个奇怪的指针问题?

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

    本文导语:  本帖最后由 VisualEleven 于 2011-02-14 15:31:32 编辑 以下程序是在Linux下使用gcc编译,第一个程序A1.C运行正常,第二个程序A2.C却是不能编译通过。因不懂gdb调试,所以上来请教大家。 有点长,请耐心看看。运行时需要先安...

本帖最后由 VisualEleven 于 2011-02-14 15:31:32 编辑
以下程序是在Linux下使用gcc编译,第一个程序A1.C运行正常,第二个程序A2.C却是不能编译通过。因不懂gdb调试,所以上来请教大家。
有点长,请耐心看看。运行时需要先安装libpcap-0.9.8.tar.gz
//A1.c
#include  
#include  
#include   /* GIMME a libpcap plz! */ 
#include 
 #include 
 #include 
 #include 
 int main(int argc, char **argv) { 
  char *dev; /* name of the device to use */  
  char *net; //如此定义
 
 int ret;   /* return code */ 
  char errbuf[PCAP_ERRBUF_SIZE];  
 bpf_u_int32 netp; /* ip          */  
 bpf_u_int32 maskp;/* subnet mask */
   struct in_addr addr; 
   dev = pcap_lookupdev(errbuf);   
if(dev == NULL) 
  {    printf("%sn",errbuf);    exit(1);   }   
printf("DEV: %sn",dev);  
 ret = pcap_lookupnet(dev,&netp,&maskp,errbuf);   

 addr.s_addr = netp;   
net = inet_ntoa(addr); //运行正常 
  printf("NET: %sn",net); //输出结果正确
  return 0; }  

以下为第二个程序A2.C
//
#include  
#include  
#include  
#include  
#include 
 #include 
 #define LINE_LEN 16
 struct conn_info { 
long int tv_sec;  
 long int tv_usec; 
  char *ip_source; 
  int  s_port;  
 char *ip_dest;  
 int  d_port; 
  unsigned long seq; 
  unsigned long ack_seq; 
}*pp;  
 void dispatcher_handler(u_char *, const struct pcap_pkthdr *, const u_char *); 
struct timeval old_ts; 
FILE *fl;
 main() { 
  pcap_t *fp; 
  char errbuf[PCAP_ERRBUF_SIZE]; 
  char packet_filter[] = "ip and tcp";  
 struct bpf_program fcode;   
 fp = pcap_open_offline("LLS_DDOS_2.0.2-outside.dump", errbuf); 
  fl=fopen("info_b.txt","wb+");    
 printf("Now file is processing......n");  
 if(errbuf == NULL)  
 {    fprintf(stderr,"nError opening dump filen");  
  return -1;   }  
  if(pcap_compile(fp, &fcode, packet_filter, 1, 0)){   
 fprintf(stderr,"nUnable to compile the packet filter. Check the syntax.n");  
  return -1;   }  
 if(pcap_setfilter(fp, &fcode)saddr;   
 a1=inet_ntoa(addrs); //编译时提示: warning: assignment makes pointer from integer without a cast
//为何方式与前面的程序一样,但是却出现warning  ?
strcpy(pp->ip_source,a1);    
printf("ip_source=%ld",pp->ip_source);  

addrd.s_addr = ipptr->daddr;  
   a2= inet_ntoa(addrd);//编译时提示: warning: assignment makes pointer from integer without a cast
    strcpy(pp->ip_dest,a2);    
   printf("%s",pp->ip_dest);   
 } 

|
使用inet_ntop来代替inet_ntoa.

|
编译提示的错误信息呢?

|
 A2.C中#include 。但这只是warning,除非你设置编译器把warning当作错误,否则应该可以编译通过的。

|
warning居然就不能继续编译了?

|
第二个程序缺少头文件
#include 

    
 
 

您可能感兴趣的文章:

  • 一个奇怪的问题(关于指向结构体的指针)
  • shm_open函数问题.奇怪!!!奇怪!!!!!
  • 奇怪的问题 奇怪的问题,向大家请教
  • 好奇怪的问题哎………………怎么也不能安装!
  • unix下的非常的奇怪WC的问题,向unix高手请教 好急呀!!!!!!!!!!!!!!!
  • 关于LINUX I2C,GCC的奇怪问题。。。问题依旧。。
  • 奇怪,怎么“已解决”问题只有4页(10/17日之后的),以前的已解决问题到哪里看?
  • 问一个很奇怪的线程调用的问题
  • 很奇怪的shell问题
  • 一个奇怪的路径问题
  • 奇怪!关于字串参数的问题?
  • ————奇怪的现象:不能关闭TOMCAT的问题————
  • 使用FC4一个奇怪问题,放入光盘后死机?
  • !!!初学Java,遇到一个奇怪问题,请大家回答!!!
  • SOCKET发送奇怪问题!!!
  • 请教redhat8.0中的两个问题~奇怪啊~
  • 引用的奇怪问题
  • 碰到个很奇怪的串口问题
  • killall 奇怪的问题,百思不得其解
  • jsp Web 部署后的奇怪问题???
  • rmmod出现的奇怪问题,求解,急急!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 奇怪!奇怪!真奇怪!!!
  • 编程技术其它 iis7站长之家
  • 奇怪,真奇怪,在线等待
  • 奇怪奇怪...........?????...........
  • solaris上的C程序,编译报错: 存储类只能使用register,奇怪,奇怪!
  • 奇怪!奇怪!我用jbuilder编jsp程序,从数据库中取出的字符串型字段却显示16进制数
  • 奇怪啊,奇怪,为什么我的JB7做EJB时,只要在EJB设计面板上随便做点东西,我的EJB的JAVA的源码就会变的不见了,或者少了很多字段申明??
  • 奇怪,CSDN的贴子,提问部分我最多能看到第4行??!!
  • accept,recvfrom接收到奇怪的ip
  • 一个特奇怪的函数申明错误
  • 一些奇怪的现象,帮帮我
  • 奇怪的四分之一屏!!
  • 好奇怪啊,大家帮忙啊
  • 奇怪的gets()!!求救!!
  • 奇怪,vi vim有区别?
  • VIM高手进来看,vim中出现了奇怪的颜色。
  • 我遇到的一个巨奇怪的事情:
  • red hat 运行 mysql5.1 出现奇怪提示
  • QT 再现奇怪的问题
  • 关于semget的奇怪问题,请大家帮忙:)


  • 站内导航:


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

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

    浙ICP备11055608号-3