unistd.h>
#include
using namespace std;
#define NUM_THREADS 20
// 文件描述符
int fd = 0;
// 多线程调用函数...pthread_join(tids[i], NULL);
}
// 关闭文件
close( fd );
return 0;
}
这里就是开20个线程调用驱动的...ioctl函数....那我来说一下, 为什么要关闭抢占.
试想一下, 获取到地址之后, 正打算++操作, 结果中断抢占, 到了另一个核, 之前的地址就对不上了, 这时候进行++操作就完全不对了....演示
说了这么多, 万一演示不出来, 就没有任何意义, 所以跑下程序. 编译生成.ko, .out这些不多说了, mknod上篇文章内核必须懂(四): 撰写内核驱动也说了.