中国石油大学Linux实验报告(3)

2019-04-22 08:21

}

dir = 0,th = 0,tl = 0,tc = 0; int i, j;

tms = H * L;

for(i = 0; i < H; i ++)

for(j = 0; j < L; j ++) map[i][j] = -1; while(tms--) { map[th][tl] = tc; tc = (tc+1)&; int nh = th + moveh[dir]; int nl = tl + movel[dir]; if(nh >= H || nh < 0 || nl >= L || nl < 0 || map[nh][nl] != -1) { dir = (dir + 1)%4; } th = th + moveh[dir]; tl = tl + movel[dir]; }

for(i = 0; i < H; i ++) for(j = 0; j < L; j ++) drv_buf[i*L+j]= map[i][j];

3、test_demo.c

char MAX_LEN=2; char H = 4, L = 5;

void showbuf(char *buf) { int i,j=0; for(i = 0; i < H; i ++) { for(j = 0; j < L; j ++) printf(\ printf(\ } printf(\}

int main() { int fd,i; char buf[255]; buf[0] = H; buf[1] = L; fd=open(\ if(fd<0) {

printf(\ return(-1); } printf(\ printf(\ printf(\ write(fd,buf,MAX_LEN); MAX_LEN = buf[0] * buf[1]; printf(\ read(fd,buf,MAX_LEN); showbuf(buf); ioctl(fd,1,NULL); close(fd); return 0; }

六 实验结果(要求截图)

1、编译nodevfs.c 与 test_demo.c。之后建立节点,插入驱动。 2、执行test_demo

七 实验曾经遇到的问题与总结(请详细列举)

1、我在实验时对照教程看懂test_demo.c如何向驱动写数据(write(fd,buf,MAX_LEN);)和读数据(read(fd,buf,MAX_LEN);)。接着看驱动如何处理(do_write())(多亏老师写的诡异的程序,一下子就找到了)。把老师的程序注释掉之后然后套上自己的矩阵程序就大功告成了。

2、我在写驱动程序想回传处理完的矩阵时直接传2维矩阵,结果出错。我只好转换为1维数组然后回传然后再test_demo.c中恢复。

3、在帮助其他同学时发现很多人都没有修改test_demo.c中的MAX_LEN而造成各种乱码。


中国石油大学Linux实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:德阳项目可行性报告 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: