一个线程在阻塞式的读一个文件,另外一个线程close这个文件时出现异常
yjpcn 2012-06-12 03:36:05 这个文件是tty驱动生成的,如果正常关闭会调用到tty驱动代码的tty_release的,
打开文件:rf_fd = open("/dev/ttyzb", O_RDWR);
一个线程在阻塞式的读取这个文件: ret = read(rf_fd, buffer, length);
关闭文件:close(rf_fd)
关闭文件时返回值为0,并且这时候再用rf_fd这个句柄读返回值为-1,说明已经关闭这个文件了,
可是在kernel里加打印,并没有调用到tty_release。
如果把那个读这个文件的线程去年,关闭的时候就能调用到tty_release,
因为需要在tty_release里做些东西,所以想找到为什么调不到tty_release。
哪们大侠知道原因??