易截截图软件、单文件、免安装、纯绿色、仅160KB

LINUX SOCKET AIO 问题

写了代码,使用ace_proactor, 原来windows跑得非常漂亮,来到linux就时不时不工作,然后加asynce_connector后,发现完成不能工作,async_stream_write后,发现卡在那里,根本发不出去,多次分析后,发现,原来之前有aio_read没有完成,aio_write的请求就block那里了,write这个操作竟然一定要等前的aio_read完成之后,才可以执行。 证据如下:
1.卡住的aio_write 会成上完成,如果socket被对方关闭。
2.在aio_read之前设置socket的模式为nonblocking, 一时write操作出现,aio_read 马上完成,并返回错误码 EAGAIN,然后aio_write的请求也给完成了。
3.socket的模式在ace和IBM有关的aio文档中给强调,must be ing blocking mode.
天啊!
尝试了在aio_write之前如果有读操作,使用aio_cancel进行cancel操作,不行,于是设置了nonblocking模式然后而cancel,还是没有任何反应。
看来LINUX的AIO实现真是够烂的,对于SOCKET操作的实现完全失败!
假设以下情形:
1.server 广播数据给客户端(调用aio_write),并且发送了一条期望得到客户端响应的指令(aio_read),结果客户端长期没有响应,这时我想再发一条通知数据给客户端(调用aio_write),这个发送的请求就给内核里block住在那里,一直发不出去,因为它要等前面一个aio_read完成, 直到客户端响应了或者是断线了,这第二个aio_write才会完成。
郁闷吧。并且你无法取消这种状态,这个socket 就停在那里了。。。。
对于server端这个还好。
如果你的server端又需要和其它server作联系的时候,你就麻烦了,完全不可预测。


相关文档:

linux 硬链接 软链接

linux中关于链接类型分为硬链接和软链接
  硬链接指令 ln  文件  链接名称
  软链接指令 ln -s 文件  链接名称
共同点:
  都可以通过链接名称去访问被链接的文件
不同点:
  硬链接会产生一个和源文件相同的文件 不论大小和属性
  删除源文件不会对链接文件产生影响
&nbs ......

OMAPL137终于跑了Linux部分

  今天终于把OmapL137的板子跑起了Linux和其带的demo。合众达对这个板子东西做的很少,把omapl137的特点都没有展示出来。可就苦了我们这些想要用这个片子的人了。国内玩这个的人还不多,所有资料就硬着头皮慢慢磨吧。
前段时间uboot是由dsp那边用nandwrite工程写进来的,其校验方式和uboot的ecc校验似乎有冲突, ......

Linux设备驱动之I2C架构分析

一:前言
I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员
的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而
I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知 ......

linux下system()详解 (转)

linux操作系统下system () 函数详解
  (执行shell 命令)
  相关函数
  fork,execve,waitpid,popen
  表头文件
  #include<stdlib.h>
  定义函数
  int system(const char * string);
  函数说明
  system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号