【请教】 资源管理器处理_IO_READ消息 的问题

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。

【请教】 资源管理器处理_IO_READ消息 的问题

帖子dust-1986 » 周五 3月 12, 2010 6:42 pm

在help中资源管理器一节中讲到处理_IO_READ 消息时,样本例子中有以下代码:

nleft = ocb->attr->nbytes - ocb->offset;
nbytes = min (msg->i.nbytes, nleft);

if (nbytes > 0) {
/* set up the return data IOV */
SETIOV (ctp->iov, buffer + ocb->offset, nbytes);

/* set up the number of bytes (returned by client's read()) */
_IO_SET_READ_NBYTES (ctp, nbytes);

……

其中nleft的意思应该是计算设备中还有多少字节。但是后面的ocb->offset偏移量具体应该是什么值呢?

ocb->attr->nbytes 应该是attr.nbytes的值吧?那样的话应该是 14 吧?程序运行起来后打印出的nleft的值为13.那么这个13是怎么计算出来的呢?


谢谢!
dust-1986
New Member
 
帖子: 9
注册: 周三 10月 08, 2008 12:54 pm

回到 四海同心QNX论坛

在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客

cron