摘要: 1.定义n = read(fd, buffer, nbytes);参数说明:fd:文件描述符buffer:存放取回数据的缓冲区?nbytes:要读取的字节数2.步骤对于调用者来说,一般是构造一条消息,包含以上三个参数,发送给系统,然后自己阻塞起来。read函数从消息中提取出fd,找到相应的filp表项以及目标文件的inode。然后将读请求分段,分段后每一次的操作都对应与一个块,即将跨块的操作分解。分解之后,检查需要读取的块是否在高速缓存中。若不在,调入之。fs(文件系统)向task(系统任务)发送一条消息,请求将数据复制到用户缓冲区中。当然复制也是分块操作的。发送应答消息给库函数,库函数再回应 阅读全文
posted @ 2012-12-08 16:04 Jun14 阅读(282) 评论(0) 推荐(0)
摘要: conv2()函数根据机器类型交换大小端数据。PUBLIC unsigned conv2(norm, w)int norm; /* TRUE if no swap, FALSE for byte swap */int w; /* promotion of 16-bit word to be swapped */{/* Possibly swap a 16-bit word between 8086 and 68000 byte order. */ if (norm) return( (unsigned) w & 0xFFFF); return( ((w&BYTE) <&l 阅读全文
posted @ 2012-12-08 14:12 Jun14 阅读(392) 评论(0) 推荐(0)