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

一调用链表的next指针 就有问题

    来源: 互联网  发布时间:2016-10-16

    本文导语:  struct pth_bl{ pthread_t id; int connect; struct cmdnode *cmd_first; struct cmdnode *cmd_end;//shengming struct sockaddr_in client_addr; int userid; int cmdnum; struct pth_bl* next; struct databag *bag_buf[BUFSZ]; sem_t bagseme,bagsemf; int bagfirst,baglast...

struct pth_bl{
pthread_t id;
int connect;
struct cmdnode *cmd_first;
struct cmdnode *cmd_end;//shengming
struct sockaddr_in client_addr;
int userid;
int cmdnum;
struct pth_bl* next;
struct databag *bag_buf[BUFSZ];
sem_t bagseme,bagsemf;
int bagfirst,baglast;
}; 
int init_pth(struct pth_bl *pb,struct sockaddr_in client_addr,int userid){
if((pb=(struct pth_bl *)malloc(sizeof(struct pth_bl)))==NULL){
perror("malloc");
return 0;
}
sem_init(&(pb->bagsemf),0,0);
sem_init(&(pb->bagseme),0,BUFSZ);
struct cmdnode *first=(struct cmdnode*)malloc(sizeof(struct cmdnode));
first->cmd=0;
first->cmdnumnode=0;
first->next=NULL;
pb->cmd_first=first;
pb->cmd_end=first;
pb->cmdnum=0;
pb->client_addr=client_addr;
pb->userid=userid;
pb->next=NULL;
pb->bagfirst=0;
pb->baglast=0;
sem_init(&(pb->bagsemf),0,BUFSZ);
sem_init(&(pb->bagseme),0,BUFSZ);
return 1;
}

int addpb(struct pth_bl *new2){
printf("addpbn");
//pthread_mutex_lock(&pbmutex);
printf("addpbn");
printf("addpbn");
//if(phead.first!=NULL)
new2->next=phead.first;
printf("addpbn");
phead.first=new2;printf("addpbn");
//pthread_mutex_unlock(&pbmutex);
printf("addpbn");
}
 ..        struct pth_bl *pt;
printf("perse:ban");
pthread_t id;
init_pth(pt,(*client_sockaddr),toint(buf,7,8));
printf("perse:ban");
printf("perse:ban");
tosend(bag);
if(phead.first==NULL)
printf("perse:addpbn");
if(pt->next==NULL)
printf("perse:addpbn");
                                     或
addpb(pt);
..
调用addpb这段话指出两个addpb现在程序有三个进程 出错的进程现在就一个线程 现在一调用struct pth_bl的next就停止不动了 应该不是线程阻塞的问题 我就得是不是递归了

|
if(pt->next==NULL)这句是肯定不会阻塞的,是假象.

    
 
 

您可能感兴趣的文章:

  • JAVA中函数调用时,能不能向 C/C++一样函数的入口参数可以为传出值(就是引用,或指针)
  • 调用函数指针的错误
  • 如何通过函数指针调用函数(实现代码)
  • 为什么我的BEAN 在WIN2000中调用没有问题,但在LINUX中调用有问题
  • 关于jsp调用javabean的问题!调用是成功了,但是有小问题!
  • 在jbuilder中调用一bean连接数据库没有问题,在jsp中调用就连接不上数据库
  • 关于《Unix网络编程》在ubuntu 8.04下运行的问题,服务器端阻塞在accept调用,客户端阻塞在connect调用,导致连接失败
  • (菜鸟飞飞)问个关于软中断和系统调用的问题
  • 关于Linux系统调用的问题!
  • 请教一个定时调用问题
  • 由于问题变化了,所以重新个贴子,是关于线程间函数调用及串口接收数据的问题?
  • 急,急,急-----------ejb部署调用问题????
  • so动态库相互调用问题?
  • C语言中函数声明与调用问题
  • 关于RPC远程过程调用的问题
  • cgi 中调用bash脚本问题?急 急 急
  • linux系统调用问题
  • 在*.so 中调用*.ko的函数的问题
  • linux系统调用表修改问题
  • 问一个很奇怪的线程调用的问题
  • 频繁调用popen的问题
  • JSP调用EJB的问题,急!急!急!
  • 在Python中使用SWIG调用C和C++程序 iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在Python中使用SWIG调用C和C++程序
  • Linux添加系统调用时如何调用C语言库函数
  • sessionbean调用entitybean的时候还需要像Client一样远程调用对象吗??
  • system()调用 与 ioctl()调用
  • linux中为什么系统调用比普通函数调用更费时间?
  • 如何在LINUX下用一个普通文件调用一个自己编写的调用系统的文件
  • 可不可以用java调用其他语言的编译结果?(好象asp调用com那样)
  • 为什么守护进程调用调用getlogin会失败呢?
  • 用RMI进行远程对象调用的时候,可不可以实现多个调用远程对象的并发操作
  • ioctl中能不能调用generic_file_read呀?我一调用就不动了
  • LINUX下系统调用是不能中断的,要怎么改造成可以中断系统调用?
  • 请问用javaScript或vbScript可否调用页面上Applet的public函数?如何调用?
  • 请问在jsp中调用外部的类,与jsp调用javabean有何区别??
  • 调用数学函数,需要调用哪个函数库?
  • 调用system(“命令”)和函数调用之间有什么不同?效率?
  • 请问如何在Java中调用一个VB所写的DLL?如何调用这个Dll的方法?如何取得和设置这个Dll的属性值?谢谢!
  • 脚本1调用脚本2,脚本2必须输入回车,如何在调用过程中自动输入回车
  • 请问linux中的系统调用号是如何跟系统调用表对应起来的
  • 我的APPLET在Jbuilder5中,可以调用EJB对象,但是移植到网页上却不能调用EJB对象!是何缘故,值得研究!
  • 新手:Linux下使用第三方C库(openssl),是调用.so文件还是直接调用.h文件?
  • 在Seesion bean中的一个方法调用Entity Bean调用错误,在线等待!!!!!!!


  • 站内导航:


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

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

    浙ICP备11055608号-3